2013-07-29 2 views
8

Есть ли возможность получить ресурс из растяжимой папки прямо в некоторых пользовательских атрибутах, так что я могу написать:Drawable ресурс из пользовательского атрибута

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

, а затем просто выполнить действие с Drawable внутри моего пользовательского класса представления?

ответ

7

См. Ответ EdgarK; лучше. (Я не могу удалить это, так как это принятый ответ)

Ответит ли это на ваш вопрос?

"Вы можете использовать format =" integer ", идентификатор ресурса для drawable и AttributeSet.getDrawable (...)."

(от https://stackoverflow.com/a/6108156/413254)

28

Существует на самом деле формат атрибут называется "ссылка". Таким образом, вы получите что-то вроде этого в пользовательском классе просмотров:

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

Хотя с sometning, как это в вашем attrs.xml:

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

Где «а» является TypedArray, что вы получите от атрибутов взятый из конструктора представлений.

Существует хороший аналогичный ответ здесь: Defining custom attrs

+0

Не забудьте добавить правильную схему: XMLNS: пользовательские = «http://schemas.android.com/apk/res-auto» – adalPaRi

Смежные вопросы