2013-07-29 16 views
8

Gibt es irgendeine Möglichkeit Ressource von ziehbar Ordner direkt in einige benutzerdefinierte Attribute zu bekommen, kann ich so schreiben:Drawable Ressource von benutzerdefinierten Attribut

<com.my.custom.View 
    android:layout_height="50dp" 
    android:layout_width="50dp" 
    ... 
    my_custom:drawableSomewhere="@drawable/some_image" /> 

und dann einfach durchführen Aktion mit ziehbar in meiner benutzerdefinierten Ansicht Klasse?

Antwort

7

Siehe EdgarKs Antwort; es ist besser. (Ich kann dies nicht löschen, da es die akzeptierte Antwort ist)

Beantwortet das Ihre Frage?

"Sie können format =" integer ", die Ressourcen-ID des Zeichenobjekts und AttributeSet.getDrawable (...) verwenden."

(Von https://stackoverflow.com/a/6108156/413254)

28

Es ist tatsächlich ein Attribut Format "Referenz" bezeichnet. So werden Sie so etwas in Ihrer benutzerdefinierten Ansichten Klasse erhalten:

case R.styleable.PMRadiogroup_images: 
        icons = a.getDrawable (attr); 
        break; 

Während sometning wie dies in Ihrem attrs.xml mit:

<attr name="images" format="reference"/> 

Wo "a" ist ein TypedArray, die Sie von Attributen erhalten aus dem Sichtenkonstruktor übernommen.

Es gibt eine gute ähnliche Antwort hier: Defining custom attrs

+0

Vergessen Sie nicht, das richtige Schema hinzuzufügen: xmlns: custom = "http://schemas.android.com/apk/res-auto" – adalPaRi

Verwandte Themen