热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于在TextView中设置DrawableLeft不显示的问题

xml中的textView:<TextViewandroid:id"@+idbookTitle"android:layout_wi

xml中的textView:

        android:id="@+id/bookTitle"
android:layout_
android:layout_
android:layout_weight="1"
android:drawableLeft="@drawable/checkmark"
android:gravity="center_vertical"
android:text
android:textSize="24dip"
android:maxLines="1"

android:ellipsize="end"/>

如程序中所见我在xml中设置了 DrawableLeft。
我想在代码中改变drawable。
有什么方法可以使用代码为textview设置drawableLeft呢?


很容易想到使用

public void  setCompoundDrawables  (Drawable left, Drawable top, Drawable right, Drawable bottom);

或者
      

public void setCompoundDrawablesWithIntrinsicBounds (Drawable left,
Drawable top, Drawable right, Drawable bottom)


它们两个的区别是:


使用第一个方法:

类似调用方法如下:

1.在XML中使用
android:drawableLeft="@drawable/icon"
2.代码中动态变化
Drawable drawable= getResources().getDrawable(R.drawable.drawable);
/// 这一步必须要做,否则不会显示.
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
myTextview.setCompoundDrawables(drawable,null,null,null);

注意必须调用setBounds,才能腾出空间来显示drawableLeft的图片


以上代码等效于:

myTextview.setCompoundDrawablesWithIntrinsicBounds (Drawable left,
Drawable top, Drawable right, Drawable bottom)


推荐阅读
author-avatar
旧梦半分_399
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有