如何实现使用textview的drawableleft使图片和文字居中显示呢???
代码如下:
1.首先自定义一个类,继承textview
package 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布局文件中直接引用即可。。。
android:id="@+id/textview1111"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableleft="@drawable/fmhp_mine_health_plan_signcalendar_finish_status_bg"
android:drawablepadding="5dp"//给图片和文字之间设置填充
android:text="都完成"
android:textcolor="#333333"
android:textsize="12sp" />
3。ok实现效果 如下。。。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!