android 设置图片小妙招 setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds
来源:互联网 发布:windows.open 返回值 编辑:程序博客网 时间:2024/04/29 08:09
今天写下拉列表框的时候,由于需要在ListView被点击的时候,出现选中按钮,所以在Adapter中的getView里可以通过TAG轻松实现,但是需要在xml布局预先设置好选中图标位置,再根据情况判断是否显示,转眼一想,却又觉得有一丝复杂,不过遵循从简原则,总会有更简单的方法,那么下面就给大家介绍通过代码设置选中图片的方法。
第一个方法:
setCompoundDrawablesWithIntrinsicBounds(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’ bounds will be set to their intrinsic bounds.
意思大概就是:可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。图标的宽高将会设置为固有宽高,既自动通过getIntrinsicWidth和getIntrinsicHeight获取。
//根据需求填入相应参数,显示哪里填哪里。viewHolder.mText.setCompoundDrawablesWithIntrinsicBounds(null, null, context.getResources().getDrawable(R.drawable.drop_down_checked), null);
//当然,需要取消显示的时候可以做如下设置.viewHolder.mText.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
第二种方法:
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 must already have had setBounds(Rect) called.
意思大概就是:可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。但是Drawable必须已经setBounds(Rect)。意思是你要添加的资源必须已经设置过初始位置、宽和高等信息。
这下就明白了,这个方法要先给Drawable设置setBounds(x,y,width,height);
x:组件在容器X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度。
Drawable myImage = getResources().getDrawable(R.drawable.home); myImage.setBounds(1, 1, 100, 100); button.setCompoundDrawables(null, myImage, null, null);
只要调整好宽和高。效果也是一样的。这个方法的好处就是不按比例,宽高可以打破原有的大小及比例!
radiobutton设置不同方位的图标的方法有以上两种,如果想手动设置大小的话就要用setCompoundDrawables,事先要给Drawable设置setBounds。
如果按照原有比例大小显示图片就使用setCompoundDrawablesWithIntrinsicBounds
- android 设置图片小妙招 setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds
- Android-04 setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- Android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- 人数不定的工资类
- 判断客户机中Word是否存在
- mtk8127 bt sco 路径
- Jquery可移动的DIV
- Ibatis 中<![[ CDATA[ ]]>意思
- android 设置图片小妙招 setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds
- ubuntu 虚拟主机的建立
- “类锁”和对象锁
- 【bzoj2466】[中山市选2009]树 高斯消元
- Linux stat file命令下的三个时间以及find指令
- 打印route表
- 一次ORA-01041错误诊断
- 实现tableView组的头视图、尾视图的粘滞效果
- 职业生涯那些坎!你都过去了吗?