获取一张文字位图

/**
 * 获取一张文字位图
 * @param context 上下文
 * @param text 文字
 * @param textColor 文字颜色
 * @param textSize 文字大小
 * @param leftBitmap 可以在文字的左边放置一张图片
 * @return 文字位图
 */
public static Bitmap getTextBitmap(Context context, String text, int textColor, float textSize, Bitmap leftBitmap){
   //创建并初始化画笔
   Paint paint = new Paint();
   paint.setColor(textColor);
   paint.setTextSize(textSize);
   paint.setAntiAlias(true);//去除锯齿
   paint.setFilterBitmap(true);//对文字进行滤波处理,增强绘制效果
   
   //计算要绘制的文字的宽和高
   float textWidth = getTextWidth(paint, text);
   float textHeight = getTextHeight(paint);

   //计算图片的宽高
   int newBimapWidth = textWidth % 1==0?(int)textWidth:(int)textWidth + 1;
   int newBimapHeight = textHeight % 1==0?(int)textHeight:(int)textHeight + 1;
   
   if(leftBitmap != null){
      newBimapWidth += leftBitmap.getWidth();
      newBimapHeight = leftBitmap.getHeight() > newBimapHeight?leftBitmap.getHeight():newBimapHeight;
   }
   
   //先创建一张空白图片,然后在其上面绘制文字
   Bitmap bitmap = Bitmap.createBitmap(newBimapWidth, newBimapHeight, Config.ARGB_8888);
   Canvas canvas = new Canvas(bitmap);
   if(leftBitmap != null){
      canvas.drawBitmap(leftBitmap, 0, (newBimapHeight - leftBitmap.getHeight())/2, paint);
      canvas.drawText(text, leftBitmap.getWidth(), (newBimapHeight - textHeight)/2 + getTextLeading(paint), paint);
   }else{
      canvas.drawText(text, 0, (newBimapHeight - textHeight)/2 + getTextLeading(paint), paint);
   }
   canvas.save();
   
   return bitmap;
}

/**
 * 获取一张文字位图
 * @param context 上下文
 * @param text 文字
 * @param textColor 文字颜色
 * @param textSize 文字大小
 * @return 文字位图
 */
public static Bitmap getTextBitmap(Context context, String text, int textColor, float textSize){
   return getTextBitmap(context, text, textColor, textSize, null);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值