图片上动态添加文字

news/2024/5/20 14:30:15

android上在图片上动态添加文字的方法:

[java]  view plain copy
  1. public Bitmap drawTextToBitmap(Context gContext,   
  2.   int gResId,   
  3.   String gText) {  
  4.   Resources resources = gContext.getResources();  
  5.   float scale = resources.getDisplayMetrics().density;  
  6.   Bitmap bitmap =   
  7.       BitmapFactory.decodeResource(resources, gResId);  
  8.    
  9.   android.graphics.Bitmap.Config bitmapConfig =  
  10.       bitmap.getConfig();  
  11.   // set default bitmap config if none  
  12.   if(bitmapConfig == null) {  
  13.     bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;  
  14.   }  
  15.   // resource bitmaps are imutable,   
  16.   // so we need to convert it to mutable one  
  17.   bitmap = bitmap.copy(bitmapConfig, true);  
  18.    
  19.   Canvas canvas = new Canvas(bitmap);  
  20.   // new antialised Paint  
  21.   Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);  
  22.   // text color - #3D3D3D  
  23.   paint.setColor(Color.rgb(616161));  
  24.   // text size in pixels  
  25.   paint.setTextSize((int) (14 * scale));  
  26.   // text shadow  
  27.   paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);  
  28.    
  29.   // draw text to the Canvas center  
  30.   Rect bounds = new Rect();  
  31.   paint.getTextBounds(gText, 0, gText.length(), bounds);  
  32.   int x = (bitmap.getWidth() - bounds.width())/2;  
  33.   int y = (bitmap.getHeight() + bounds.height())/2;  
  34.    
  35.   canvas.drawText(gText, x * scale, y * scale, paint);  
  36.    
  37.   return bitmap;  
  38. }  

http://www.niftyadmin.cn/n/4472227.html

相关文章

BZOJ3718[PA2014]Parking——树状数组

题目描述 你的老板命令你将停车场里的车移动成他想要的样子。停车场是一个长条矩形,宽度为w。我们以其左下角顶点为原点,坐标轴平行于矩形的边,建立直角坐标系。停车场很长,我们可以认为它一直向右边伸展到无穷远处。车都是边平行…

Android控件之Chronometer(定时器)

Chronometer是一个简单的定时器,你可以给它一个开始时间,并以此定时,或者如果你不给它一个开始时间,它将会使用你的时间通话开始。默认情况下它会显示在当前定时器的值的形式“分:秒”或“H:MM:…

shell之删除elasticsearch30天以前的索引

在elasticsearch的运维工作中,由于es每天会产生大量的日志,如果一直保存不进行删除的话,再大的磁盘空间也会不够用,由此需要删除满足条件的index,从而释放磁盘空间;我们公司的es要求只保留30天的日志即可&a…

Metricbeat 参考指南(步骤3:在Elasticsearch中加载索引模板)

步骤3:在Elasticsearch中加载索引模板 在Elasticsearch中,索引模板用于定义设置和映射,以确定如何分析字段。 Metricbeat推荐的索引模板文件是由Metricbeat包安装的,如果你接受metricbeat.yml配置文件中的默认配置,那么…

android手机屏幕适配补充

如何将一个应用程序适配在不同的手机上&#xff0c;虽然这不算是一个技术问题&#xff0c;但是对于刚刚做屏幕的开发人员来说&#xff0c;还真不是一件多么简单的事情。 首先&#xff1a;你需要在AndroidManifest.xml文件的<manifest>元素如下添加子元素 <supports-sc…

url加密 比较

1.escape 简单来说&#xff0c;escape是对字符串(string)进行编码(而另外两种是对URL)&#xff0c;作用是让它们在所有电脑上可读。 编码之后的效果是%XX或者%uXXXX这种形式。 其中 ASCII字母、数字、*/ &#xff0c;这几个字符不会被编码&#xff0c;其余的都会。 最关键的是&…

ERROR tool.ImportTool: Import failed: java.io.IOException: Generating splits for a textual index col

sqoop任务报错&#xff1a; 异常内容&#xff1a; ERROR tool.ImportTool: Import failed: java.io.IOException: Generating splits for a textual index column allowed only in case of “-Dorg.apache.sqoop.splitter.allow_text_splittertrue” property passed as a par…

Android GridView 横向滚动 一行显示

都知道gridview和listview是android比较重要的数据组件&#xff0c; 接到一个横向显示数据的任务&#xff0c;头大半天&#xff0c;最后只能用gridview试试了。呵呵&#xff0c;费了N多脑细胞&#xff0c;搞定。 布局文件main.xml [java] view plaincopy <?xml version&…