xml中的textView:
1
2
3
4
5
6
7
8
9
10
11
12
|
<TextView
android:id=
"@+id/bookTitle"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:drawableLeft=
"@drawable/checkmark"
android:gravity=
"center_vertical"
android:textStyle=
"bold"
android:textSize=
"24dip"
android:maxLines=
"1"
android:ellipsize=
"end"
/>
|
如程序中所见我在xml中设置了 DrawableLeft。
我想在代码中改变drawable。
有什么方法可以使用代码为textview设置drawableLeft呢?
解决方案:
1
|
public
void
setCompoundDrawables (Drawable left, Drawable top, Drawable right, Drawable bottom);
|
原问题来自于优快云问答频道,更多解决方案见:http://ask.youkuaiyun.com/questions/903
类似调用方法如下:
1.在XML中使用
1
|
android:drawableLeft=
"@drawable/icon"
|
2.代码中动态变化
1
2
3
4
|
Drawable drawable= getResources().getDrawable(R.drawable.drawable);
/// 这一步必须要做,否则不会显示.
drawable.setBounds(
0
,
0
, drawable.getMinimumWidth(), drawable.getMinimumHeight());
myTextview.setCompoundDrawables(drawable,
null
,
null
,
null
);
|
也或参考另一个函数
1
2
|
public
void
setCompoundDrawablesWithIntrinsicBounds (Drawable left,
Drawable top, Drawable right, Drawable bottom)
|