android如何让自定义控件居中,Android自定义控件之自定义TextView,实现drawableLeft可以和文字一起居中...
如何实现使用TextView的DrawableLeft使图片和文字居中显示呢???代码如下:1.首先自定义一个类,继承TextViewpackagecom.test.signcalendar.weight;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.drawable.D...
如何实现使用TextView的DrawableLeft使图片和文字居中显示呢???
代码如下:
1.首先自定义一个类,继承TextViewpackage com.test.signcalendar.weight;import android.content.Context;import android.graphics.Canvas;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.TextView;/**
* 自定义TextView,实现drawableLeft可以和文字一起居中
* @author HLQ
* @createtime 2016年3月20日04:14:36
*
*/public class DrawableCenterTextView extends TextView { public DrawableCenterTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle);
} public DrawableCenterTextView(Context context, AttributeSet attrs) { super(context, attrs);
} public DrawableCenterTextView(Context context) { super(context);
} @Override
protected void onDraw(Canvas canvas) {
Drawable[] drawables = getCompoundDrawables(); if (drawables != null) {
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;
canvas.translate((getWidth() - bodyWidth) / 2, 0);
}
} super.onDraw(canvas);
}
}
2.之后在xml布局文件中直接引用即可。。。
真是会者不难,,,难者不会。。。
打开App,阅读手记
更多推荐
所有评论(0)