package com.bzh.mysimplefresco.lib;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.NinePatchDrawable;
import android.text.TextUtils;
import com.bzh.mysimplefresco.R;
/**
* ========================================================== <br>
* <b>版权</b>: 别志华 版权所有(c) 2015 <br>
* <b>作者</b>: 别志华 biezhihua@163.com<br>
* <b>创建日期</b>: 15-9-18 <br>
* <b>描述</b>: <br>
* <b>版本</b>: V1.0 <br>
* <b>修订历史</b>: <br>
* ========================================================== <br>
*/
public class MyNinePatchDrawable extends NinePatchDrawable {
private String mStr;
private Paint mPaint;
public MyNinePatchDrawable(Resources res, Bitmap bitmap, byte[] chunk, Rect padding, String srcName, String str) {
super(res, bitmap, chunk, padding, srcName);
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setColor(Color.WHITE);
mPaint.setStyle(Paint.Style.FILL);
mPaint.setTextSize(res.getDimensionPixelSize(R.dimen.text_size_16));
mStr = str;
}
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
if (TextUtils.isEmpty(mStr)) {
return;
}
float textHeight = mPaint.descent() - mPaint.ascent();
float textWidth = mPaint.measureText(mStr);
float offsetX = textWidth / 2;
float offsetY = textHeight / 2;
float disY = getIntrinsicHeight() / 2 - offsetY;
float disX = getIntrinsicWidth() / 2 - offsetX;
canvas.drawText(mStr, this.getBounds().right - getIntrinsicWidth() + disX, this.getBounds().bottom - getIntrinsicHeight() + textHeight, mPaint);
}
}