写在文前:作为一只android小白,第一次鼓起勇气写博客,如果有错误和表述不对的地方,希望大家不吝指出,万分感谢!如文章有雷同,纯属巧合。

android中对于图片经常会重绘,添加一些水印,比如文字或者日期等。那么具体是怎么实现的呢?

首先,我们需要知道水印绘制的具体位置,就需要得到图片宽高,而android中的bitmap类就给我们提供了这个方法:

int width = bitmap.getWidth();int hight = bitmap.getHeight();Bitmap imgTemp = Bitmap.createBitmap(width, hight,Bitmap.Config.ARGB_8888);
得到了图片的宽高我们就需要创建画笔和画布,用于绘制,并对图片做一些简单处理:

Canvas canvas = new Canvas(imgTemp);// 初始化画布绘制的图像到icon上Paint photoPaint = new Paint(); // 建立画笔photoPaint.setDither(true); // 获取更清晰的图像采样photoPaint.setFilterBitmap(true);// 过滤一些
然后我们就需要绘制矩形,并对画笔做一些简单的设置:

Rect src = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());// 创建一个指定的新矩形的坐标Rect dst = new Rect(0, 0, width, hight);// 创建一个指定的新矩形的坐标canvas.drawBitmap(bitmap, src, dst, photoPaint);// 将photo 缩放或则扩大到dst使用的填充区photoPaintPaint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG| Paint.DEV_KERN_TEXT_FLAG);// 设置画笔textPaint.setTextSize(35.0f);// 字体大小textPaint.setTypeface(Typeface.DEFAULT_BOLD);// 采用默认的宽度textPaint.setColor(Color.GREEN);// 采用的颜色
(设置画笔可以设置更多属性,看自己喜好)
之后我们就可以开始绘制文字了(这里我就绘制当前日期了):

canvas.drawText(String.valueOf("照片日期:"+ new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new java.util.Date(System.currentTimeMillis()))), 20, 65,textPaint);// 绘制上去字,开始未知x,y采用那只笔绘制
最后我们只需要使用画布给图片加水印就可以了:

canvas.drawBitmap(bitmap, bitmap.getWidth() - 5, 5, textPaint);// 在src的右下角画入水印canvas.save(Canvas.ALL_SAVE_FLAG);canvas.restore();
这样一个简单的水印就完成了,希望对大家有帮助。




更多相关文章

  1. android大分辨率图片的缩放处理和图片添加水印+文字,水印图片对角
  2. Android(安卓)画布绘图
  3. [置顶] Android自定义View入门
  4. android canvas与图层的关系
  5. android canvas 使用
  6. android 垂直拖动条seekbar
  7. Android(安卓)Paint
  8. android ImageView实现上面圆角下面直角(自定义view实现)
  9. Android:使用Canvas合并Bitmap

随机推荐

  1. ch010 Android(安卓)GridView
  2. Android(安卓)之 自定义控件用法介绍
  3. 自定义组件
  4. Android(安卓)Provider 属性
  5. android一些小技巧
  6. 如何进行Android单元测试
  7. Android(安卓)sharedUserId
  8. Android(安卓)ExpandableListView的使用
  9. 常用的android弹出对话框alertDialog
  10. android 操作sqlite数据库