我要在图片中间位置写文字!
有好多种办法:
1.制作图片时直接制作集中带文字的,贴图即可!
2.利用控件, textview啥的!
3.-- 绘制底图,再绘制文字
我用了一种最笨的 !还遇到了一个问题:canvas.drawText() 起点不对!不是左上,是左下!
举例:
我要在登陆图片上写 登陆或未登录。
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
canvas.drawBitmap(m_LogInBmp, null, m_LogIndst, m_txBackPaint);
float tleft = m_LogIndst.left + (m_LogIndst.right - m_LogIndst.left - FontWidth*m_TextLogIn.length())/2;
float ttop = m_LogIndst.top + (m_LogIndst.bottom - m_LogIndst.top - FontHeight)/2 +FontHeight;
canvas.drawText( m_TextLogIn, tleft, ttop, mLogInPaint);
}
这里canvas.drawBitmap 的绘制起点是左上。
而canvas.drawText 的绘制起点是左下。
是我用的不对,还是真的是这个情况?!
附加计算字的长和宽的代码:
mLogInPaint = new Paint();
mLogInPaint.setColor(Color.RED);
mLogInPaint.setTextSize(24); //其实这里要是不设置,在我手机上是12的。
Rect rect = new Rect();
mLogInPaint.getTextBounds("小", 0, 1, rect);
FontHeight = rect.height();
FontWidth = rect.width();