2013-08-03 17 views
6

Tôi có tệp sau trong thư mục có thể kéo được gọi là /drawable/mybkg.xml. Tôi muốn thổi phồng nó để tôi có thể thay đổi màu sắc theo chương trình. Điều đó có thể thực hiện được trong Android không?thổi phồng lớp danh sách các hình dạng trong android

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item> 
     <shape android:shape="oval" > 
      <padding 
       android:top="5dp" 
       android:bottom="2dp" 
       android:left="2dp" 
       android:right="2dp" /> 

      <solid 
       android:angle="270" 
       android:color="#1bd4f6" /> 

      <stroke 
       android:width="2dp" 
       android:color="#121ce5" /> 
     </shape> 
    </item> 

    <!-- Foreground --> 
    <item> 
     <shape android:shape="oval" > 

      <solid android:color="#1b90f6" /> 
     </shape> 
    </item> 

</layer-list> 

Tôi vừa mới thấy một lớp được gọi là LayerDrawable. Có ai biết làm thế nào tôi có thể chuyển đổi tập tin xml của tôi vào như vậy LayerDrawable hoặc bằng cách viết mã hoặc thổi phồng xml hiện có?

Trả lời

1

Bạn nên sử dụng phương thức Resources.getDrawable(int id). Đây là tài liệu: http://developer.android.com/reference/android/content/res/Resources.html#getDrawable(int) Nó làm tăng bất kỳ loại tài nguyên có thể kéo nào. Điều duy nhất còn lại để bạn có thể làm là đưa đối tượng vẽ được quay trở lại loại cụ thể nhất mà bạn cần (trong trường hợp của bạn là LayerDrawable). Dưới đây là ví dụ:

// calling from Activity 
LayerDrawable d = (LayerDrawable) getResources().getDrawable(R.drawable.my_drawable);