Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 實現圖片加水印

Android 實現圖片加水印

編輯:關於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,是來設置多長之後 開始換行。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved