生成水印照片类


package com.chinawit.cwandroidbase.Infrastructure.CWComponent.CWImage.WaterMark;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Typeface;import android.text.Layout;import android.text.StaticLayout;import android.text.TextPaint;/**  * Created by lenovo on 2016/3/15.  */ public class WaterMarkUtil {    private float imageDrawFormX, imageDrawFormY;    private float imageOffsetX,imageOffsetY;    private int textColor, textSize;    private Context context;    public WaterMarkUtil() {        imageDrawFormX = 0;        imageDrawFormY = 0;        imageOffsetX= 0;        imageOffsetY= 0;        textColor = Color.BLUE;        textSize = 15;    }    public WaterMarkUtil(Context context) {        this.context = context;        imageDrawFormX = 0;        imageDrawFormY = 0;        imageOffsetX= 0;        imageOffsetY= 0;        textColor = Color.BLUE;        textSize = 15;    }    public void setImageDrawXY(float imageDrawFormX, float imageDrawFormY) {        this.imageDrawFormX = imageDrawFormX;        this.imageDrawFormY = imageDrawFormY;    }    public void setImageOffsetXY(float imageOffsetX,float imageOffsetY){        this.imageOffsetX = imageOffsetX;        this.imageOffsetY = imageOffsetY;    }    public void setTextColor(int textColor) {        this.textColor = textColor;    }    public void setTextSize(int textSize) {        this.textSize = textSize;    }    // add waterMark    public Bitmap addWaterMarkByImageAndWord(Bitmap src, Bitmap mark, String title) {        if (src == null) {            return null;        }        int srcWidth = src.getWidth();        int srcHeight = src.getHeight();        //create the new blank bitmap        Bitmap newbitmap = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888);        Canvas canvas = new Canvas(newbitmap);        //draw src into        canvas.drawBitmap(src, imageDrawFormX, imageDrawFormY, null);        Paint paint = new Paint();        if (mark != null) {            int markWidth = mark.getWidth();            int markHeight = mark.getHeight();            paint.setAlpha(50);            //draw watermark into            canvas.drawBitmap(mark,imageOffsetX,imageOffsetY, null);        }        if (title != null) {            String familyName = "宋体";            Typeface font = Typeface.create(familyName, Typeface.BOLD);            TextPaint textPaint = new TextPaint();            textPaint.setColor(textColor);            textPaint.setTypeface(font);            textPaint.setTextSize(textSize);            textPaint.setAntiAlias(true);            StaticLayout layout = new StaticLayout(title, textPaint, srcWidth, Layout.Alignment.ALIGN_NORMAL, 1.0F, 0.0F, true);            layout.draw(canvas);        }        //save all clip        canvas.save(Canvas.ALL_SAVE_FLAG);        //store        canvas.restore();        return newbitmap;    }}

实例使用

package com.chinawit.cwandroidbase.SampleImage;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.os.Bundle;import android.widget.ImageView;import com.chinawit.cwandroidbase.Infrastructure.CWComponent.CWImage.WaterMark.WaterMarkUtil;import com.chinawit.cwandroidbase.R;public class WaterMarkActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_water_mark);        Bitmap src = BitmapFactory.decodeResource(getResources(), R.mipmap.main_bg);        int w = src.getWidth();        int h = src.getHeight();        float scale = (float) (1000000.0/(w*h));        Matrix matrix = new Matrix();        matrix.setScale(scale, scale);        Bitmap src1 = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true);        src.recycle();        Bitmap water = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);        WaterMarkUtil waterMarkUtil = new WaterMarkUtil();        waterMarkUtil.setTextSize(50);        waterMarkUtil.setImageOffsetXY(w/2-water.getWidth(), h/2-water.getHeight());        src1 = waterMarkUtil.addWaterMarkByImageAndWord(src1,water,"Aeric waterMark test");        ImageView imageView = (ImageView)findViewById(R.id.imageView);        imageView.setImageBitmap(src1);    }}

更多相关文章

  1. Android(安卓)AsyncTask实例
  2. Android笔记 SystemUI
  3. Android两种计步器sensor
  4. Windows下使用platform.pk8 和platform.x509.pem生成Android(安
  5. android skia 使用实例
  6. android 屏幕适配之自动生成多重values
  7. 【android-tips】android程序执行adb shell命令(实例源码)
  8. Android(安卓)View之组合控件实例(一)
  9. Android(安卓)OpenGL之生成FloatBuffer

随机推荐

  1. android 微信摇一摇动画效果
  2. android复制assets里的压缩文件到sdcard
  3. com.android.tools.aapt2.Aapt2Exception
  4. android 获取本机的一些信息(imsi,imei..
  5. Android开发权限说明
  6. android 屏蔽home 处理home
  7. Android截屏并保存图片到本地
  8. Android(安卓)- RadioButton 图片位置和
  9. android 加载图片防止内存溢出
  10. Android(安卓)P WiFi Disable 流程