9
votes

Android TextView Color Color Ressource

J'ai un listview code>. Custom_LisTem1.xml est utilisé pour l'affichage des éléments dans la liste. Maintenant, je veux définir la ressource de couleur code> Sélecteur code> (list_selector_color.xml) pour l'arrière-plan de l'élément.

personnalisé_listitem1.xml fort> p> xxx P >

06-06 18:38:19.422: ERROR/AndroidRuntime(18603): Uncaught handler: thread main exiting due to uncaught exception
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): android.view.InflateException: Binary XML file line #1: Error inflating class <unknown>
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.LayoutInflater.createView(LayoutInflater.java:513)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.ResourceCursorAdapter.newView(ResourceCursorAdapter.java:79)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.SimpleCursorAdapter.newView(SimpleCursorAdapter.java:96)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.CursorAdapter.getView(CursorAdapter.java:182)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.AbsListView.obtainView(AbsListView.java:1274)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.ListView.makeAndAddView(ListView.java:1668)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.ListView.fillDown(ListView.java:637)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.ListView.fillFromTop(ListView.java:694)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.ListView.layoutChildren(ListView.java:1521)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.AbsListView.onLayout(AbsListView.java:1113)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1108)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.onLayout(LinearLayout.java:920)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.layout(View.java:6830)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.ViewRoot.performTraversals(ViewRoot.java:996)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.os.Looper.loop(Looper.java:123)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.app.ActivityThread.main(ActivityThread.java:4363)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at java.lang.reflect.Method.invokeNative(Native Method)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at java.lang.reflect.Method.invoke(Method.java:521)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at dalvik.system.NativeStart.main(Native Method)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): Caused by: java.lang.reflect.InvocationTargetException
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.TextView.<init>(TextView.java:329)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at java.lang.reflect.Constructor.constructNative(Native Method)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.LayoutInflater.createView(LayoutInflater.java:500)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     ... 52 more
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): Caused by: android.content.res.Resources$NotFoundException: File res/color/list_selector_color.xml from drawable resource ID #0x7f070000
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.content.res.Resources.loadDrawable(Resources.java:1693)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.content.res.TypedArray.getDrawable(TypedArray.java:548)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.view.View.<init>(View.java:1850)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     at android.widget.TextView.<init>(TextView.java:335)
06-06 18:38:19.445: ERROR/AndroidRuntime(18603):     ... 56 more
06-06 18:38:19.445: ERROR/AndroidRuntime(18603): Caused by: org.xmlpul


2 commentaires

où vous avez mis votre fichier list_selector_color.xml dans votre projet.


Je recommande de mettre "listelector color.xml" dans le dossier RES / Drapable. Si cela n'existe pas, créez d'abord un dossier "dessinable" sous répertoire RES.


6 Réponses :


0
votes

Où stockez-vous la liste_selector_color.xml? Si c'est en RES / Couleur, essayez de le déplacer à Res / Dutable et appelez comme android: fond = "@ drables / list_selector_color"


1 commentaires

Cela ne fonctionne pas - le fichier list_selector_color.xml provoque une erreur d'exécution car chaque <élément> doit avoir une androïde: définie d'attributs dotables s'il est tiré à partir des dossiers introactifs. Avoir Android: Le jeu de couleurs n'est pas suffisant. : \



0
votes

Vous devez créer color.xml dans ... \ res \ valse \ color.xml répertoire de projet.
Exemple color.xml fichier xxx

puis comment utiliser la couleur? Veuillez voir cet exemple et ajouter la ligne de +++++++ Exemple de fichier principal.xml xxx


1 commentaires

Je veux montrer une couleur différente à différents états (E.g pressé, Focus) pour TextView. Comment cela est-il possible sur votre chemin?



0
votes

Oui, il est possible si vous définissez chaque textview dans chaque linearlayout alors ça fonctionne.


1 commentaires

Pouvez-vous choisir un exemple de code comment nous pouvons définir différentes couleurs à différents endroits (E.g pressé, Focus) pour linearlayout?



7
votes
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/background"//color 1
>
<TextView
    android:id="@+id/tvheader"
    android:layout_width="300dip"
    android:layout_height="wrap_content"
    android:background="#EC7703"
    android:textColor="#000000"
    android:text="  Edit Items" />
    />
<TextView
    android:id="@+id/tvsl"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:background="@color/translucent_red"//color 2
    />
    <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/background">
         <EditText
        android:id="@+id/txtsl"
        android:maxLines="1"
        android:layout_marginTop="3dip"
        android:layout_marginBottom="2dip"
        android:layout_width="wrap_content"
        android:ems="20"
        android:layout_height="wrap_content"/>
    </LinearLayout>
   <TextView
    android:id="@+id/tvname"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:background="@color/background"
    />
    <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/row">
    <Spinner 
            android:id="@+id/txtname"
            android:layout_width="200dip"
            android:layout_height="wrap_content"
            android:drawSelectorOnTop="true"
            android:prompt="@string/medicine_info"
            android:layout_toRightOf="@id/slcolon"
            />
    </LinearLayout>
    <TextView
    android:id="@+id/tvqty"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:background="@color/background"
    />
    <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/background">
    <EditText
    android:id="@+id/txtqty"
    android:maxLines="1"
    android:layout_marginTop="3dip"
    android:gravity="right"
    android:layout_marginBottom="2dip"
    android:layout_width="wrap_content"
    android:ems="20"
    android:layout_height="wrap_content"/>
    </LinearLayout>
    <TextView
    android:id="@+id/tvuom"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#000000"
    android:background="@color/background"
    />
    <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/background">
    <EditText
    android:id="@+id/txtuom"
    android:maxLines="1"
    android:layout_marginTop="3dip"
    android:layout_marginBottom="2dip"
    android:layout_width="wrap_content"
    android:ems="20"
    android:layout_height="wrap_content"/>
    </LinearLayout>
    <TableLayout
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         android:background="@color/background"
         android:layout_gravity="center"
         android:stretchColumns="*" >
   <TableRow>
    <Button
       android:id="@+id/Btnok"
       android:text="Edit" />
    <Button
       android:id="@+id/Btndelete"
       android:text="Delete" />
    <Button
       android:id="@+id/Btncancel"
       android:text="Cancel" />
   </TableRow>
   </TableLayout>
   <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="40dip"
        android:background="#F7BE57">//collor change by using color code
         <TextView
            android:id="@+id/maincolon"
            android:layout_width="wrap_content"
            android:layout_height="40dip"
            android:text="                    " />
         <TextView
            android:id="@+id/tvprovider"
            android:layout_width="wrap_content"
            android:layout_height="40dip"
            android:textColor="#000000"
            android:text="Provider : Softworks"
         />
     </LinearLayout>
</LinearLayout>

1 commentaires

J'ai besoin de couleurs différentes à différents états (E.g pressé, focus) de la même vue. La couleur par défaut est noire, sur la touche, elle sera jaune, si elle est focalisée, elle sera rouge. Comment cela est-il possible dans votre code?



-1
votes

Maintenant, je comprends que ce que vous voulez dire.Ok Voir l'exemple suivant

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" 
    android:drawable="@drawable/btn_dial_textfield_pressed" />
<item android:state_focused="true"
    android:drawable="@drawable/btn_dial_textfield_selected" />
<item
    android:drawable="@drawable/btn_dial_textfield_normal" />//btn_dial_textfield_normal is a .png image resource into drowable folder "btn_dial_textfield_normal.png"
</selector>


0 commentaires

10
votes

Vous ne pouvez pas utiliser de sélecteur de couleur comme arrière-plan. Vous pouvez utiliser un sélecteur diguable à la place:

android:background="@drawable/list_selector_color"


1 commentaires

Mec! Je n'ai jamais pensé à créer la forme dans la balise ! Tu es un génie. J'ai toujours détesté le fait que je ne puisse pas utiliser l'androïde: couleur directement à l'intérieur de la balise elle-même, je créerais toujours des fichiers distincts pour chaque !