如何访问drawable?

时间:2013-10-15 20:10:32

标签: android android-layout android-fragments xamarin

我有这样的布局(我用于片段):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:minWidth="25px"
   android:minHeight="25px">
<TextView
    android:id="@+id/Text_Value"
    android:text="0"
    android:textSize="32dp"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/PlaySquareShape"/>
</RelativeLayout>

我将此形状作为上述布局中TextView的背景:

  <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle">
        <solid android:color="#ffffff" />
        <stroke android:width="1dip" android:color="#4fa5d5"/>
  </shape>

我需要更改drawable的颜色。如何从代码中访问它?

我基本上显示了许多片段实例,我需要从特定片段中访问可绘制的背景。

1 个答案:

答案 0 :(得分:3)

你可以这样做:

View v = findViewById(R.id.Text_Value);
ShapeDrawable d = (ShapeDrawable) v.getBackground();

或者,如果您有对特定片段的引用:

View v = frag.getView().findViewById(R.id.Text_Value);