2013-08-03 26 views
6

şekillerinin katman katman listesi şişirme /drawable/mybkg.xml adlı çizilebilir klasörde aşağıdaki dosya var. Şişirmek istiyorum, böylece renkleri programatik olarak değiştirebilirim. Android'de bu mümkün mü?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> 

Şimdi sadece LayerDrawable denilen bir sınıf gördük. Kimse xml dosyasını LayerDrawable'a kod yazarak veya mevcut xml'i şişirerek nasıl dönüştürebileceğimi biliyor mu?

cevap

1

Resources.getDrawable(int id) yöntemini kullanmalısınız. İşte belgeler: http://developer.android.com/reference/android/content/res/Resources.html#getDrawable(int) Her türlü çekilebilir kaynağı şişirir. Yapmanız gereken tek şey, geri döndürülebilir çekilişin ihtiyaç duyduğunuz en spesifik tipte (sizin durumunuza göre LayerDrawable) gönderilmesidir. İşte bir örnek:

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