android图片重绘添加简单水印(日期等)

写在文前:作为一只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使用的填充区photoPaint
Paint 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();
这样一个简单的水印就完成了,希望对大家有帮助。




你可能感兴趣的:(android小知识)