如何实现使用TextView的DrawableLeft使图片和文字居中显示呢???
代码如下:
1.首先自定义一个类,继承TextViewpackagecom.test.signcalendar.weight;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.drawable.Drawable;importandroid.util.AttributeSet;importandroid.widget.TextView;/**
*自定义TextView,实现drawableLeft可以和文字一起居中
*@authorHLQ
*@createtime3月20日04:14:36
*
*/publicclassDrawableCenterTextViewextendsTextView{publicDrawableCenterTextView(Contextcontext,AttributeSetattrs,intdefStyle){super(context,attrs,defStyle);
}publicDrawableCenterTextView(Contextcontext,AttributeSetattrs){super(context,attrs);
}publicDrawableCenterTextView(Contextcontext){super(context);
}@Override
protectedvoidonDraw(Canvascanvas){
Drawable[]drawables=getCompoundDrawables();if(drawables!=null){
DrawabledrawableLeft=drawables[0];if(drawableLeft!=null){floattextWidth=getPaint().measureText(getText().toString());intdrawablePadding=getCompoundDrawablePadding();intdrawableWidth=0;
drawableWidth=drawableLeft.getIntrinsicWidth();floatbodyWidth=textWidth+drawableWidth+drawablePadding;
canvas.translate((getWidth()-bodyWidth)/2,0);
}
}super.onDraw(canvas);
}
}
2.之后在xml布局文件中直接引用即可。。。
真是会者不难,,,难者不会。。。
android如何让自定义控件居中 Android自定义控件之自定义TextView 实现drawableLeft可以和文字一起居中...