1. 程式人生 > >自定義控制元件讓TextView的drawableLeft與文字一起居中顯示

自定義控制元件讓TextView的drawableLeft與文字一起居中顯示

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);