setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别

  前言:今天看源码看到的setCompoundDrawablesWithIntrinsicBounds方法当时初步理解就是在view的不同方向设置drawable图像,上网上查了查,就发现还有一个

setCompoundDrawables的方法。手工设置文本与图片相对位置时,比如edittext中的设置左边图像或者右边图像一样,这里就来说说他们的区别

他们都是TextView的方法,如果不设置就可以在相应的参数位置上设置为null

1.setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)

   <1>api

Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use null if you do not want a Drawable there. The Drawables must already have had setBounds(Rect) called.

意思大概就是:可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。但是Drawable必须已经setBounds(Rect)。意思是你要添加的资源必须已经设置过初始位置、宽和高等信息。

这下就明白了,这个方法要先给Drawable设置setBounds(x,y,width,height);

x:组件在容器X轴上的起点

y:组件在容器Y轴上的起点

width:组件的长度

height:组件的高度。

<2>用法

1 mBtn = (Button) findViewById(R.id.id_btn);
2         Drawable icon = this.getResources().getDrawable(R.drawable.ic_launcher);
3         // 必须设置
4         icon.setBounds(1, 1, 100, 100);
5         mBtn.setCompoundDrawables(null, null, icon, null);

效果:

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

  <1>Api

Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use null if you do not want a Drawable there. The Drawables‘ bounds will be set to their intrinsic bounds.

意思大概就是:可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。图标的宽高将会设置为固有宽高,既自动通过getIntrinsicWidth和getIntrinsicHeight获取。

<2>用法

1     mBtn = (Button) findViewById(R.id.id_btn);
2         Drawable icon = this.getResources().getDrawable(R.drawable.ic_launcher);
3         mBtn.setCompoundDrawablesWithIntrinsicBounds(null, null, icon, null);

效果

时间: 2025-01-10 08:24:21

setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别的相关文章

android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别

手工设置文本与图片相对位置时,常用到如下方法: setCompoundDrawables(left, top, right, bottom) setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom) 意思是设置Drawable显示在text的左.上.右.下位置. 但是两者有些区别: setCompoundDrawables 画的drawable的宽高是按drawable.setBound()设置的宽高, 所以才有The D

setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds

1.setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom) api:Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use null if you do not want a Drawable there. The Drawables mus

手工设置文本与图片相对位置

setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别 手工设置文本与图片相对位置时,常用到如下方法: setCompoundDrawables(left, top, right, bottom) setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom) 意思是设置Drawable显示在text的左.上.右.下位置. 区别: setCompoundDra

[Android]自己定义带删除输入框

在项目开发中,带删除button输入框也是人们经常常使用到的,该文章便介绍一下怎样创建一个带删除输入框.当中,须要解决的问题例如以下: a)创建自己定义editText类 b)在自己定义editText中显示删除图片 c)依据输入框的输入情况显示或隐藏图片 d)点击删除图片文字消失,图片隐藏 e)依据输入框焦点失去和获得状态显示或隐藏图片 好了.问题明白了.開始实现功能: a)创建一个名为MyClearEditText的class文件,并集成EditText,实现其构造方法: public My

通过代码设置radiobutton不同方位图标的两种方法

更换radiobutton中的图片在xml中很好设置,但对于初学者如何在代码中设置还是不容易找的.没法子,通过看原版api找到两个方法,setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds. 下面交给大家方法. 第一个方法:setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom) ap

android学习经常使用的数据文件夹

android工程实践 1.仿360一键清理实现(一) "一键清理"是一个桌面图标,点击图标后,显示一个视图.进行清理动画.之后显示清理了几个进程,释放了多少M内存.点击"设置过滤名单"启动另外一个Activity编辑过滤名单 1.仿360一键清理实现(二) "一键清理"是一个桌面图标,点击图标后,显示一个视图,进行清理动画,之后显示清理了几个进程,释放了多少M内存.点击"设置过滤名单"启动另外一个Activity编辑过滤名单

Android 通过代码设置radiobutton不同方位图标的两种方法

更换radiobutton中的图片在xml中很好设置,但对于初学者如何在代码中设置还是不容易找的.没法子,通过看原版api找到两个方法,setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds. 下面交给大家方法. 第一个方法:setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom) ap

Android setCompoundDrawablesWithIntrinsicBounds手工设置文本与图片相对位置说明

手工设置文本与图片相对位置时,常用到如下方法: setCompoundDrawables(left, top, right, bottom): setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom) 意思是设置Drawable显示在text的左.上.右.下位置. (Textview.Button都可以) 但是两者有些区别: setCompoundDrawables 画的drawable的宽高是按drawable.setB

Nginx 反代参数:$X-Real-Ip和$X-Forwarded-For的区别

## \$X-Real-Ip和$X-Forwarded-For的区别 标签(空格分隔): nignx 负载均衡 client-ip --- ####1.如果只有一层代理,这两个头的值就是一样的####2.多层代理> * X-Forwarded-For:  header包含这样一行        `*X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3*`> * X-Real-Ip:没有相关标准,上面的例子,如果配置了X-Read-IP,可能会有两种情况`// 最