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. 安卓开发第一次实验
  2. Ubuntu10.04下载并编译Android4.3源代码
  3. Android—滑动ListView保存选中状态
  4. [Android(安卓)L]Android(安卓)L RippleV
  5. Android(安卓)log日志
  6. 面试一线大厂的点点滴滴
  7. ERROR: Unknown command 'crunch' 解决方
  8. Android中Tab类型主界面大总结一共5种方
  9. Android高德地图SDK的使用
  10. Android(安卓)程序怎么打log