ImageUtil 工具类package com.njhhsoft.egj.util;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.Rect;public class ImageUtil {    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 newb = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);// 创建一个新的和SRC长度宽度一样的位图        //将该图片作为画布        Canvas canvas = new Canvas(newb);        //在画布 0,0坐标上开始绘制原始图片        canvas.drawBitmap(src, 0, 0, null);        //在画布上绘制水印图片        canvas.drawBitmap(watermark, paddingLeft, paddingTop, null);        // 保存        canvas.save(Canvas.ALL_SAVE_FLAG);        // 存储        canvas.restore();        return newb;    }    /**     * 绘制文字到右下角     * @param context     * @param bitmap     * @param text     * @param size     * @param color     * @param paddingBottom     * @param paddingRight     * @return     */    public static Bitmap drawTextToRightBottom(Context context, Bitmap bitmap, String text, String name, String ctx,             String text1, String name1, String ctx1,                                               int size, int color, int paddingRight, int paddingBottom) {        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,name, ctx,text1,name1, ctx1, paint, bounds,                bitmap.getWidth() - bounds.width() - dp2px(context, paddingRight),                bitmap.getHeight() - dp2px(context, paddingBottom));    }    //图片上绘制文字    private static Bitmap drawTextToBitmap(Context context, Bitmap bitmap, String text, String name, String ctx,                                           String text1, String name1, String ctx1,                                           Paint paint, Rect bounds, int paddingLeft, int paddingTop) {        android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();        paint.setDither(true); // 获取跟清晰的图像采样        paint.setFilterBitmap(true);// 过滤一些        if (bitmapConfig == null) {            bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;        }        bitmap = bitmap.copy(bitmapConfig, true);        Canvas canvas = new Canvas(bitmap);        canvas.drawText(text, paddingLeft, paddingTop, paint);        canvas.drawText(name, paddingLeft, paddingTop+100, paint);        canvas.drawText(ctx, paddingLeft, paddingTop+200, paint);        canvas.drawText(text1, paddingLeft, paddingTop+300, paint);        canvas.drawText(name1, paddingLeft, paddingTop+400, paint);        canvas.drawText(ctx1, paddingLeft, paddingTop+500, paint);        return bitmap;    }    /**     * 缩放图片     * @param src     * @param w     * @param h     * @return     */    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);        }    }    /**     * dip转pix     * @param context     * @param dp     * @return     */    public static int dp2px(Context context, float dp) {        final float scale = context.getResources().getDisplayMetrics().density;        return (int) (dp * scale + 0.5f);    }}

 

 

Activity中的调用方式

 

 

更多相关文章

  1. android 拍照和上传
  2. 绘制直角坐标系
  3. [Android] 零碎知识汇总 - RecyclerView 顶部悬浮
  4. Android_绘制圆形图片
  5. Android开发大长图加载
  6. Android(安卓)基于surfaceView绘制正弦曲线
  7. android recycler添加分割线 点击事件等
  8. android 加载大图的原理和实现
  9. View 绘制机制 -- How Android(安卓)Draws Views

随机推荐

  1. android tween动画
  2. android 应用开发code
  3. Android虚线分割Shape
  4. android颜色对应的xml配置值
  5. Android RelativeLayout 相对布局
  6. android tabhost
  7. Android Input Event Dispatching
  8. Android 登录界面xml代码
  9. Android关于流媒体播放(1)
  10. VLC on Android