2013-07-29 30 views
8

Có khả năng để có được tài nguyên từ thư mục drawable đúng trong một số thuộc tính tùy chỉnh, vì vậy tôi có thể viết:nguồn drawable từ thuộc tính tùy chỉnh

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

và sau đó đơn giản thực hiện thao tác với drawable bên trong class view tùy chỉnh của tôi?

Trả lời

7

Xem câu trả lời của EdgarK; thế tốt hơn rồi. (Tôi không thể xóa điều này vì đó là câu trả lời được chấp nhận)

Điều này có trả lời câu hỏi của bạn không?

"Bạn có thể sử dụng định dạng =" số nguyên ", id tài nguyên của đối tượng có thể kéo và AttributeSet.getDrawable (...)."

(Từ https://stackoverflow.com/a/6108156/413254)

28

Có thực sự là một định dạng thuộc tính gọi là "tham khảo". Vì vậy, bạn sẽ nhận được một cái gì đó như thế này trong lớp xem tùy chỉnh của bạn:

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

Trong khi có sometning như thế này trong attrs.xml của bạn:

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

đâu "a" là một TypedArray mà bạn nhận được từ các thuộc tính được lấy từ hàm tạo views.

Có một câu trả lời tương tự tốt ở đây: Defining custom attrs

+0

Đừng quên để thêm schema thích hợp: xmlns: tùy chỉnh = "http://schemas.android.com/apk/res-auto" – adalPaRi