編輯:關於Android編程
開門見山,添加水印的方法非常簡單,其實就只有3個步驟:
1、載入原始圖片
2、載入水印圖片
3、保存帶有水印的圖片
實現的原理就是:獲取原始圖片的寬高,然後,新建一個同樣寬高的bitmap,將這個新的bitmap作為畫布,接著,就在這個畫布上面畫原圖,畫水印圖片,有文字就接著畫文字。
上面哪個順序一定不能亂,不然你可能就看不到水印,或則文字了,因為畫在原圖下面去了
繪制水印的代碼如下:
private static Bitmap createWaterMaskBitmap(Bitmap src, Bitmap watermark,
int paddingLeft, int paddingTop) {
if (src == null) {
return null;
}
int width = src.getWidth();
int height = src.getHeight();
//創建一個bitmap
Bitmap newBitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);// 創建一個新的和SRC長度寬度一樣的位圖
//將該圖片作為畫布
Canvas canvas = new Canvas(newBitmap);
//在畫布 0,0坐標上開始繪制原始圖片
canvas.drawBitmap(src, 0, 0, null);
//在畫布上繪制水印圖片
canvas.drawBitmap(watermark, paddingLeft, paddingTop, null);
// 保存
canvas.save(Canvas.ALL_SAVE_FLAG);
// 存儲
canvas.restore();
return newBitmap;
}
繪制文字的代碼如下:
/**
* 繪制文字到中間
*
* @param context
* @param bitmap
* @param text
* @param size
* @param color
* @return
*/
public static Bitmap drawTextToCenter(Context context, Bitmap bitmap, String text,
int size, int color) {
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(color);
paint.setTextSize(dp2px(context, size));
Rect bounds = new Rect();
paint.getTextBounds(text, 0, text.length(), bounds);
return drawTextToBitmap(context, bitmap, text, paint, bounds,
(bitmap.getWidth() - bounds.width()) / 2,
(bitmap.getHeight() + bounds.height()) / 2);
}
/**
* 圖片上繪制文字
*/
private static Bitmap drawTextToBitmap(Context context, Bitmap bitmap, String text,
Paint paint, Rect bounds, int paddingLeft, int paddingTop) {
Config bitmapConfig = bitmap.getConfig();
paint.setDither(true); // 獲取跟清晰的圖像采樣
paint.setFilterBitmap(true);// 過濾一些
if (bitmapConfig == null) {
bitmapConfig = Config.ARGB_8888;
}
bitmap = bitmap.copy(bitmapConfig, true);
Canvas canvas = new Canvas(bitmap);
canvas.drawText(text, paddingLeft, paddingTop, paint);
return bitmap;
}
效果圖如下:

github地址為:https://github.com/chenguo4930/Watermark
git地址為:https://github.com/chenguo4930/Watermark.git
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
Android使用Retrofit2.0技術仿微信發說說
最近項目做完了,有閒暇時間,一直想做一個類似微信中微信發說說,既能實現拍照,選圖庫,多圖案上傳的案例,目前好多App都有類似微信朋友圈的功能,能過發表說說等附帶圖片上傳。
Android下錄制App操作生成Gif動態圖的全過程
Android App開發完了,自然希望錄個gif做個展示。視頻也可以做展示,但是需要上傳到優酷、土豆等等,而且本來就十幾秒的App演示操作過程,視頻網站的廣告就要一分鐘
Android 主頁鍵和最近應用鍵的處理onUserLeaveHint
相比主頁鍵(HOME)和最近應用鍵(APP_SWITCH)的處理,返回鍵比較簡單,復寫onKeyDown就可以實現,如下:
Android微信第三方登錄(個人筆記)
今天在寫微信登錄,花了半天時間搞定、然後寫下自己的筆記,希望幫助更多的人。歡迎各位指教。微信授權登錄,官方說的不是很清楚、所以導致有一部分的坑。微信注冊應用平台的應用簽名