package com.hzy.tvmao.view.widget;
import com.hzy.tvmao.utils.ui.ViewUtil;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.FontMetricsInt;
import android.graphics.Rect;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ImageView;
public class TouchImageView extends ImageView
{
private String mText;
private int mTextSize = ViewUtil.dip2px(13);
public TouchImageView(Context context) {
super(context);
}
public TouchImageView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public TouchImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
public void setText(String mText) {
this.mText = mText;
postInvalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (TextUtils.isEmpty(mText)) {
return;
}
Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
Rect mBounds = new Rect();
mPaint.setColor(Color.WHITE);
mPaint.setTextSize(mTextSize);
mPaint.getTextBounds(mText, 0, mText.length(), mBounds);
float textWidth = mBounds.width();
FontMetricsInt fontMetrics = mPaint.getFontMetricsInt();
float fontHeight = fontMetrics.bottom - fontMetrics.top;
//设置文字居中
float textBaseY = getHeight() - (getHeight() - fontHeight) / 2 - fontMetrics.bottom;
canvas.drawText(mText, (getWidth() - textWidth) / 2, textBaseY, mPaint);
// canvas.drawText(mText, (getWidth() - textWidth) / 2, getHeight(), mPaint);错误的, 不能居中!
}
}
参考
http://blog.csdn.net/hursing/article/details/18703599
http://blog.sina.com.cn/s/blog_54254a840101be27.html