/** * 解决文字和drawableleft和文字一起时不居中。要设置 android:background="@null"android:button="@null" * @author zhousheng * */ public class MDMRadioButton extends RadioButton { public MDMRadioButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub } public MDMRadioButton(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public MDMRadioButton(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { //获取设置的图片 Drawable[] drawables = getCompoundDrawables(); if (drawables != null) { //第一个是left Drawable drawableLeft = drawables[0]; if (drawableLeft != null) { //获取文字的宽度 float textWidth = getPaint().measureText(getText().toString()); int drawablePadding = getCompoundDrawablePadding(); int drawableWidth = 0; drawableWidth = drawableLeft.getIntrinsicWidth(); float bodyWidth = textWidth + drawableWidth + drawablePadding; int y = getWidth(); canvas.translate((getWidth() - bodyWidth) / 2, 0); } } super.onDraw(canvas); } }
使用:
<com.maidoumi.merchant.widget.MDMRadioButton
android:id="@+id/rb_main_table"
style="@style/main_radiobtn_style"
android:checked="true"
android:drawableLeft="@drawable/ic_back"
android:text="@string/main_table" />
时间: 2024-10-12 21:24:07