一个小应用,在图片上绘制文字,以下是绘制文字的方法,并且能够实现自动换行,字体自动适配屏幕大小

private void drawNewBitmap(ImageView imageView, String str) {
Bitmap photo = BitmapFactory.decodeResource(this.getResources(), R.drawable.background);
int width = photo.getWidth();
int hight = photo.getHeight();
//建立一个空的Bitmap
Bitmap icon = Bitmap.createBitmap(width, hight, Bitmap.Config.ARGB_8888);
// 初始化画布绘制的图像到icon上
Canvas canvas = new Canvas(icon);
// 建立画笔
Paint photoPaint = new Paint();
// 获取更清晰的图像采样,防抖动
photoPaint.setDither(true);
// 过滤一下,抗剧齿
photoPaint.setFilterBitmap(true); Rect src = new Rect(, , photo.getWidth(), photo.getHeight());// 创建一个指定的新矩形的坐标
Rect dst = new Rect(, , width, hight);// 创建一个指定的新矩形的坐标
canvas.drawBitmap(photo, src, dst, photoPaint);// 将photo 缩放或则扩大到dst使用的填充区photoPaint
      //自定义的画笔
TextPaint textPaint=myTextPaint();
     drawText(canvas,textPaint,str,,hight/,width); canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore(); imageView.setImageBitmap(icon);
saveMyBitmap(this,icon);
}
//设置画笔的字体和颜色
public TextPaint myTextPaint(){ TextPaint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);// 设置画笔
int TEXT_SIZE = Math.round( * getRATIO());
textPaint.setTextSize(TEXT_SIZE);// 字体大小
textPaint.setTypeface(Typeface.DEFAULT_BOLD);// 采用默认的宽度
textPaint.setColor(Color.argb(,,,));// 采用的颜色
return textPaint;
//写入文字,自动换行的方法
public void drawText(Canvas canvas, TextPaint Paint,String textString,int x,int y,int width) {
//int Width=Math.round(width* getRATIO());
int start_x=Math.round(x * getRATIO());
int start_y=Math.round(y * getRATIO());
StaticLayout staticLayout=new StaticLayout(textString, Paint, width-start_x*,
Alignment.ALIGN_NORMAL, 1.5f, 0.0f, false); //绘制的位置
canvas.translate(start_x, start_y);
staticLayout.draw(canvas);
}

最新文章

  1. [EasyUI美化换肤]更换EasyUi图标
  2. 转-基于NodeJS的14款Web框架
  3. freemarker 数据做加减计算
  4. 【转】IOS开发资源汇总
  5. 第6章 System V消息队列
  6. matlab search path
  7. 第九篇、UITabbar增加类别用来标红点
  8. win10全系列官方MSDN原版系统安装密钥、版本区别、镜像下载地址与激活教程
  9. UVA 10129-Play on Words(欧拉通路)
  10. Log4j学习手记
  11. 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载
  12. SQL 插入语句汇总
  13. Java jsp基本结构
  14. 我的第一个python web开发框架(4)——数据库结构设计与创建
  15. Jquery 多选全选/取消 选项卡切换 获取选中的值
  16. 20162330 实验四 《Android程序设计》 实验报告
  17. 在Asp.Net Core中集成ABP Dapper
  18. Spark之UDF
  19. Eslint 从入门到放弃
  20. ONVIF协议学习笔记

热门文章

  1. tab标签页(选项卡)插件
  2. Java学习笔记六 常用API对象二
  3. MariaDB 安装 (YUM)
  4. numpy_basic3
  5. 阅读笔记——Servlet
  6. HDU——T 3579 Hello Kiki
  7. Android中实现整个视图切换的左右滑动效果
  8. (转) 如何取消Linux下,vi中显示的^M符号
  9. (转)bat批处理的注释语句
  10. Spring Boot 动态数据源(Spring 注解数据源)