我有这样的布局(我用于片段):
<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的颜色。如何从代码中访问它?
我基本上显示了许多片段实例,我需要从特定片段中访问可绘制的背景。
答案 0 :(得分:3)
你可以这样做:
View v = findViewById(R.id.Text_Value);
ShapeDrawable d = (ShapeDrawable) v.getBackground();
或者,如果您有对特定片段的引用:
View v = frag.getView().findViewById(R.id.Text_Value);