編輯:關於Android編程
給圖片添加水印的基本思路都是載入原圖,添加文字或者載入水印圖片,保存圖片這三個部分
添加水印圖片:
private Bitmap createWaterMaskImage(Context gContext, Bitmap src, Bitmap watermark)
{
String tag = "createBitmap";
Log.d(tag, "create a new bitmap");
if (src == null)
{
return null;
}
int w = src.getWidth();
int h = src.getHeight();
int ww = watermark.getWidth();
int wh = watermark.getHeight();
// create the new blank bitmap
Bitmap newb = Bitmap.createBitmap(w, h, Config.ARGB_8888);// 創建一個新的和SRC長度寬度一樣的位圖
Canvas cv = new Canvas(newb);
// draw src into
cv.drawBitmap(src, 0, 0, null);// 在 0,0坐標開始畫入src
// draw watermark into
cv.drawBitmap(watermark, 20, 20, null);// 在src的右下角畫入水印
// save all clip
cv.save(Canvas.ALL_SAVE_FLAG);// 保存
// store
cv.restore();// 存儲
return newb;
}添加文字
public static Bitmap scaleWithWH(Bitmap src, double w, double h) {
if (w == 0 || h == 0 || src == null) {
return src;
} else {
// 記錄src的寬高
int width = src.getWidth();
int height = src.getHeight();
// 創建一個matrix容器
Matrix matrix = new Matrix();
// 計算縮放比例
float scaleWidth = (float) (w / width);
float scaleHeight = (float) (h / height);
// 開始縮放
matrix.postScale(scaleWidth, scaleHeight);
// 創建縮放後的圖片
return Bitmap.createBitmap(src, 0, 0, width, height, matrix, true);
}
}
public Bitmap drawTextToBitmap(Context gContext,
int gResId,
String gText) {
Resources resources = gContext.getResources();
float scale = resources.getDisplayMetrics().density;
Bitmap bitmap =
BitmapFactory.decodeResource(resources, gResId);
bitmap = scaleWithWH(bitmap, 300*scale, 300*scale);
android.graphics.Bitmap.Config bitmapConfig =
bitmap.getConfig();
// set default bitmap config if none
if(bitmapConfig == null) {
bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
}
// resource bitmaps are imutable,
// so we need to convert it to mutable one
bitmap = bitmap.copy(bitmapConfig, true);
Canvas canvas = new Canvas(bitmap);
// new antialised Paint
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
// text color - #3D3D3D
paint.setColor(Color.RED);
paint.setTextSize((int) (18 * scale));
paint.setDither(true); //獲取跟清晰的圖像采樣
paint.setFilterBitmap(true);//過濾一些
Rect bounds = new Rect();
paint.getTextBounds(gText, 0, gText.length(), bounds);
int x = 30;
int y = 30;
canvas.drawText(gText, x * scale, y * scale, paint);
return bitmap;
}
Android可循環顯示圖像的Android Gallery組件用法實例
本文實例分析了Android可循環顯示圖像的Android Gallery組件用法。分享給大家供大家參考,具體如下:Gallery組件主要用於橫向顯示圖像列表,不過按常規
re管理器是什麼 re管理器在哪
re管理器是玩轉安卓的一個必不可少的神器之一,基於強大的文件管理功能,可以查看系統system分區文件,配合root授權使用,簡直就是可以發揮安卓的極致。r
Activity啟動過程源碼分析
其實寫分析源碼文章總會顯得很復雜很乏味,但是梳理自己看源碼時的一些總結也是一種提高。這篇博客分析下Activity啟動過程源碼,我會盡量說得簡單點。個人的觀點是看源碼不能
Android應用中使用ContentProvider掃描本地圖片並顯示
之前群裡面有朋友問我,有沒有關於本地圖片選擇的Demo,類似微信的效果,他說網上沒有這方面的Demo,問我能不能寫一篇關於這個效果的Demo,於是我研究了下微信的本地圖片