关于android在图片上写文字的问题

我要在图片中间位置写文字!

 

有好多种办法:

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

 

 

你可能感兴趣的:(android,null,手机,float)