La définition de la couleur d'une Peinture de l'objet dans la vue personnalisée
Je suis en train de faire un affichage personnalisé et ont déclaré que le style des attributs comme ci-dessous:-
<resources>
<declare-styleable name="NewCircleView">
<attr name="radius" format="integer"/>
<attr name="circlecolor" format="color"/>
</declare-styleable>
</resources>
dans le constructeur de la customview , ces valeurs sont obtenues comme ci-dessous:-
circleradius=a.getInt(R.styleable.NewCircleView_radius, 0);//global var
circlecolor=a.getColor(R.styleable.NewCircleView_circlecolor, 0);//global var and a is the typed array
La vue est utilisée en déclarant le xml comme ci-dessous:-
<com.customviews.NewCircleView
android:layout_below="@id/thetext"
android:layout_width="match_parent"
android:layout_height="fill_parent"
app:radius="10000"
app:circlecolor="@color/black"<!--this is defined in colors.xml
/>
Dans la vue personnalisée lorsque j'ai mis de la peinture à l'objet en tant que :-
thePaintObj.setColor(circlecolor);//circlecolor logs to an integer as expected
Je n'obtiens pas la couleur"noir", défini dans le fichier xml
cependant lorsque j'ai mis de la couleur comme
thePaintObj.setColor(Color.GRAY)
Je obtenir la couleur dans la vue
Quelqu'un peut me dire ce qu'aurais-je fait de mal ?
(N. B:-Si vous voulez que je poste plus de code , s'il vous plaît laissez-moi savoir)
EDIT1:- de Poster mon colors.xml. Regarde comme il n'est pas clair dans mon code commentaires:-
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#7f00</color>
<color name="blue">#770000ff</color>
<color name="green">#7700ff00</color>
<color name="yellow">#77ffff00</color>
<color name="black">#000000</color>
</resources>
OriginalL'auteur Rasmus | 2013-09-08
Vous devez vous connecter pour publier un commentaire.
Dans colors.xml
Pour récupérer
Puis mis en couleur à la peinture
Plus info @
http://developer.android.com/guide/topics/resources/more-resources.html#Color
Edit:
MyCustomView
attrs.xml
colors.xml
MyCustomView en xml
Snap Shot
ne cochez cette stackoverflow.com/questions/3441396/defining-custom-attrs
je viens d'essayer et cela fonctionne pour moi. Je vais poster le même.
merci pour vos efforts sur ce sujet, mais faut-il encore fonctionner de la même si vous remplacez la couleur = un.getColor(R. styleable.NewCircleView_circlecolor, 0xff000000); couleur = un.getColor(R. styleable.NewCircleView_circlecolor);
lui donner un essai, vous saurez vous-même
OriginalL'auteur Raghunandan
Si je comprends bien, la constante 0x000000 résultats dans le noir transparent puisqu'il n'est pas Alpha composant spécifié. La valeur Alpha est le premier octet d'un à quatre octets valeur de couleur. La constante pour opaque (solide) noir est 0xff000000. En d'autres termes, la couleur 0x000000, qui est le même que 0x00000000, les résultats en vous dessin de façon totalement transparente. La constante pour le Rouge semble aussi mal, résultant en vert transparent.
OriginalL'auteur Ashley