您的位置:首页 > 编程语言

在代码中手动设置图片相对于TextView的位置

2017-06-27 16:58 232 查看
在代码中手动设置图片相对于TextView或Button的位置

第一个方法:
setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom)


可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。图标的宽高将会设置为固有宽高,既自动通过getIntrinsicWidth和getIntrinsicHeight获取。
//根据需求填入相应参数,显示哪里填哪里。
mText.setCompoundDrawablesWithIntrinsicBounds(null, null, context.getResources().getDrawable(R.drawable.drop_down_checked), null);

//当然,需要取消显示的时候可以做如下设置.
mText.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);


第二种方法:
setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)


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

这个方法要先给Drawable设置setBounds(int left, int top, int right, int bottom);
Drawable myImage = getResources().getDrawable(R.drawable.home);
myImage.setBounds(1, 1, 100, 100);
button.setCompoundDrawables(null, myImage, null, null);


只要调整好宽和高。效果也是一样的。这个方法的好处就是不按比例,宽高可以打破原有的大小及比例! 

radiobutton设置不同方位的图标的方法有以上两种,如果想手动设置大小的话就要用setCompoundDrawables,事先要给Drawable设置setBounds。
如果按照原有比例大小显示图片就使用setCompoundDrawablesWithIntrinsicBounds
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐