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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值