package com.ydl.ydlcommon.view; import android.content.Context; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import androidx.appcompat.widget.AppCompatTextView; import android.util.AttributeSet; /** * * drawable右边图标与内容一起居中 * Created by harvie on 2016/10/21. */ public class DrawableRightTextView extends AppCompatTextView { public DrawableRightTextView(Context context) { super(context); } public DrawableRightTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public DrawableRightTextView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { Drawable[] drawables = getCompoundDrawables(); if (drawables != null) { Drawable drawableLeft = drawables[2]; if (drawableLeft != null) { float textWidth = getPaint().measureText(getText().toString()); int drawablePadding = getCompoundDrawablePadding(); int drawableWidth = 0; drawableWidth = drawableLeft.getIntrinsicWidth(); float bodyWidth = textWidth + drawableWidth + drawablePadding; setPadding(0, 0, (int)(getWidth() - bodyWidth), 0); canvas.translate((getWidth() - bodyWidth) / 2, 0); } } super.onDraw(canvas); } }