編輯:關於Android編程
public Bitmap addWaterMark(Bitmap src, String water, Context context){
Bitmap tarBitmap = src.copy(Config.ARGB_8888, true);
int w = tarBitmap.getWidth();
int h = tarBitmap.getHeight();
Canvas canvas = new Canvas(tarBitmap);
//啟用抗鋸齒和使用設備的文本字距
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.BLACK);
textPaint.setShadowLayer(3f, 1, 1,context.getResources().getColor(android.R.color.background_dark));
//圖片上添加水印的位置,這裡設置的是中下部3/4處
canvas.drawText(water, (float)(w*0.05), (float) (h*0.9), textPaint);
canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
return tarBitmap;
}
事實上對於canvas.drawText()是不能實現自動換行的。
在string參數裡加入/r/n,都是無效的,所以同TextPaint類
具體代碼如下:
public Bitmap addWaterMark1(Bitmap src, String water, Context context){
Bitmap tarBitmap = src.copy(Config.ARGB_8888, true);
int w = tarBitmap.getWidth();
int h = tarBitmap.getHeight();
Canvas canvas = new Canvas(tarBitmap);
//啟用抗鋸齒和使用設備的文本字距
TextPaint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);
//字體的相關設置
textPaint.setTextSize(35.0f);//字體大小
textPaint.setTypeface(Typeface.DEFAULT_BOLD);
textPaint.setColor(Color.BLACK);
textPaint.setShadowLayer(3f, 1, 1,context.getResources().getColor(android.R.color.background_dark));
StaticLayout layout = new StaticLayout(water, textPaint, 500,
Alignment.ALIGN_NORMAL, 1.0F, 0.0F, true);
canvas.save();
canvas.translate((float)(w*0.05), (float) (h*0.9));//從20,20開始畫
layout.draw(canvas);
canvas.save(Canvas.ALL_SAVE_FLAG);
return tarBitmap;
}
其中StaticLayout中的參數500,是來設置多長之後 開始換行。
一、FLAG的具體意義1、FLAG概述有關save系列函數,在canvas中總共有如下幾個: public int save()public int
android給我們提供了一個spinner控件,這個控件主要就是一個列表,那麼我們就來說說這個控件吧,這個控件在以前的也看見過,但今天還是從新介紹一遍吧。Spinner
之前我在 《Windows下Qt 5.2 for Android開發入門》一文中介紹了 Windows 下 Qt on Android 開發環境的搭建,略過了 Andro
本文實例講述了Android編程實現調用系統圖庫與裁剪圖片功能。分享給大家供大家參考,具體如下:在Android開發中,調用系統圖庫和裁剪照片是很常見的需求。相對於自己實