Android为CheckBox(复选框)设置可规定大小的图片

来源:互联网 发布:小强软件测试 编辑:程序博客网 时间:2024/04/25 08:32

当我们需要在CheckBox后面放一张图片的效果的时候.
如果在XML文件中使用drawableRight

<CheckBox
android:drawableRight="@drawable/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

的话,如果图片尺寸过大,就会发生图片铺满整个屏幕的情况
这里写图片描述
如果给CheckBox设置大小


<CheckBox
android:drawableRight="@drawable/image"
android:layout_width="100dp"
android:layout_height="100dp" />

就不能完全展示图片
这里写图片描述
如果在java代码中使用setButtonDrawable的话会遇到跟第一种方法同样的问题,无法规定图片的大小

所以这里我就使用图文混排的方法,利用图片代替文字,用setTest的方法为CheckBox设置图片,具体代码如下

布局文件:
<CheckBox
android:id="@+id/cb"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

java代码:
//获取CheckBox对象
CheckBox cb=(CheckBox)findViewById(R.id.cb);
//创建Drawable对象
Drawable drawable=getResources().getDrawable(R.drawable.xingchen);
//设置drawable的位置,宽高
drawable.setBounds(0,0,300,300);
//创建ImageSpan对象
ImageSpan imageSpan=new ImageSpan(drawable);
//创建SpannableStringBuilder对象
SpannableStringBuilder spannableStringBuilder=new SpannableStringBuilder(".");
//将imageSpan放入spannableStringBuilder中
spannableStringBuilder.setSpan(imageSpan, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//设置cb的文本,将spannableStringBuilder放入
cb.setText(spannableStringBuilder);

最终效果:
这里写图片描述
下面是源码下载地址:
http://download.csdn.net/download/woqq863787405/9579472

本人只是安卓领域的一只萌新,如果大家有更好的方法/建议的话欢迎在评论区交流.

1 0
原创粉丝点击