学习一下:之前在写布局发现drawableTop设置图片时,图片总是在最上方开始绘制的,而要求是图片和文字一起居中显示,虽然drawablePadding可以设置图片的内边距而调整位置,可还是不理想。下面粘贴代码记录一下实现。
public class CustomRadioButton extends RadioButton {
public CustomRadioButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
canvas = getTopCanvas(canvas);
super.onDraw(canvas);
}
private Canvas getTopCanvas(Canvas canvas) {
Drawable[] drawables = getCompoundDrawables();
if (drawables == null) {
return canvas;
}
Drawable drawable = drawables[1];// 上面的drawable
if(drawable == null){
drawable = drawables[3];// 下面的drawable
}
float textSize = getPaint().getTextSize();
int drawHeight = drawable.getIntrinsicHeight();
int drawPad