2014-12-14 3 views
1

Я хочу получить элемент в списке слоев, который находится в xbutton.xml.Android findViewById в форме фона возвращает null

button.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:right="5dp" android:left="5dp" android:bottom="6dp" android:top="5dp"> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
     <stroke android:width="3dip" android:color="#FFF" /> 
     <solid android:color="#003055"/> 
     <corners android:radius="22dp" /> 
    </shape> 
</item> 
<item android:right="10dp" android:left="10dp" android:bottom="11dp" android:top="10dp"> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
     <gradient 
      android:angle="90" 
      android:endColor="#0184c9" 
      android:startColor="#003055" 
      android:type="linear" /> 
     <corners android:radius="19dp" /> 
    </shape> 
</item> 
<item android:left="-30dp" android:top="20dp" android:id="@+id/itemIcon"> 
    <bitmap android:src="@drawable/coin" android:gravity="center"></bitmap> 
</item> 
</layer-list> 

main_activity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@drawable/background_hdpi" 
tools:context=".MainActivity"> 

<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/linearLayout" 
    android:layout_marginTop="25dp" 
    android:layout_marginLeft="35dp" 
    android:layout_marginRight="35dp" 
    android:orientation="horizontal"> 

    <Button 
     android:id="@+id/list1button" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     android:textSize="16sp" 
     android:background="@drawable/xbutton" 
     android:drawablePadding="@dimen/activity_horizontal_margin" 
     android:gravity="left|center_vertical" 
     android:drawableLeft="@drawable/ikona1" 
     style="@style/ButtonShadowText" 
     android:onClick="onClickBtn"/> 
</LinearLayout> 
</RelativeLayout> 

Когда я пытаюсь получить деталь

View itemCoin = findViewById(R.id.itemIcon); 

я получаю нуль для itemCoin. Я хочу изменить значение android:left в элементе.

Я могу получить другой вид, т. Е. List1button.

ответ

0
final LayerDrawable exampleDrawable = (LayerDrawable) getResources().getDrawable(R.drawable.example); 
final ClipDrawable d1 = (ClipDrawable) exampleDrawable.findDrawableByLayerId(R.id.customitemIcon); 

findDrawableByLayerId для поиска слоев в вытяжке и findViewById для ВИДА

+0

Теперь я получаю BitmapDrawable с конечным LayerDrawable exampleDrawable = (LayerDrawable) GetResources(). GetDrawable (R .drawable.xbutton); final BitmapDrawable d1 = (BitmapDrawable) exampleDrawable.findDrawableByLayerId (R.id.itemIcon); Но как я могу изменить андроид: левый параметр Item? – Peter

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