在代码中手动设置图片相对于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