Ho un componente personalizzato chiamato CircleView
, e voglio cambiare un attributo personalizzato chiamato fillColor
definito attrs.xml
:Come impostare gli attributi personalizzati dei componenti personalizzati a livello di programmazione?
<declare-styleable name="CircleView">
<attr name="radius" format="integer" />
<attr name="fillColor" format="color" />
</declare-styleable>
Ho impostato inizialmente in mio layout XML, che attualmente si presenta così (namespace circleview
è definita come xmlns:circleview="http://schemas.android.com/apk/res-auto"
, funziona benissimo quando mi definisco in XML, quindi questo non dovrebbe essere un problema):
<com.mz496.toolkit.CircleView
...
circleview:fillColor="#33ffffff"/>
posso ottenere l'attributo fillColor
bene nel mio CircleView
, che si estende View
, ma non so come impostare il suo valore.
Ho studiato cose come setBackgroundColor
e ho cercato altri metodi "set", ma non sono riuscito a trovarne. Ho immaginato un metodo come
circle.setAttribute(R.styleable.CircleView_fillColor, "#33ff0000")
Sì, non c'è niente nello strumento Android di serie che aggiunge automagicamente accessor corrispondenti a attributi, in parte perché potrebbe non essere la risposta giusta per tutti i casi d'uso. Non sono a conoscenza di librerie di terze parti che offrono questo, ma potrei sicuramente sembrare che qualcuno arrotoli un processore di annotazioni che ha tentato di fare questo tipo di generazione di codice. – CommonsWare
Giusto, Android Studio cerca silenziosamente di aiutare i nomi dei metodi di autocompleting (dopo aver digitato 'public void set', suggerisce' set ', ma penso che sia tutto ciò che accade per ora. –
mz496