如何用textview设置drawableLeft属性

来源:互联网 发布:华为it应用技术工程师 编辑:程序博客网 时间:2024/06/05 20:40
在麦子学院的论坛里,我看见很多android新手都在问textview设置drawableleft属性的方法,我把那位在麦子学院论坛里的问题复制下来了,然后我们一起来解答下: 
原问题描述: 
xml中的textView: 
1. <font face="宋体" size="3"> <TextView 
2. android:id="@+id/bookTitle" 
3. android:layout_width="match_parent" 
4. android:layout_height="wrap_content" 
5. android:layout_weight="1" 
6. android:drawableLeft="@drawableeckmark" 
7. android:gravity="center_vertical" 
8. android:textStyle="bold" 
9. android:textSize="24dip" 
10. android:maxLines="1" 
11. </font> <font face="宋体" size="3"> 
12. android:ellipsize="end"/> </font> 
如程序中所见我在xml中设置了 DrawableLeft。 
我想在代码中改变drawable。 
有什么方法可以使用代码为textview设置drawableLeft呢? 
解决方案: 
1. <font face="宋体" size="3"> 
2. public void setCompoundDrawables (Drawable left, Drawable top, Drawable right, Drawable bottom); </font> 
类似调用方法如下: 
1.在XML中使用 
1. <font face="宋体" size="3"> 
2. android:drawableLeft="@drawable/icon" </font> 
2.代码中动态变化 
1. <font face="宋体" size="3"> 
2. Drawable drawable= getResources().getDrawable(R.drawable.drawable); 
3. /// 这一步必须要做,否则不会显示. 
4. drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); 
5. myTextview.setCompoundDrawables(drawable,null,null,null); </font> 
也或参考另一个函数 
1. <font face="宋体" size="3"> 
2. public void setCompoundDrawablesWithIntrinsicBounds (Drawable left, 
3. Drawable top, Drawable right, Drawable bottom) 
4. </font> 
在android界面开发过程中,有时候需要一个多行输入,实现代码如下: 
1. <font face="宋体" size="3"> <EditText 
2. android:id="@+id/editContent" 
3. android:layout_width="fill_parent" 
4. android:layout_height="wrap_content" 
5. android:minLines="3" 
6. android:textSize="18sp" </font> 

0 0
原创粉丝点击