繁体   English   中英

如何在支持多种屏幕尺寸的android中截屏后立即添加图标或水印图像

[英]How to add icon or watermark image to immediately after taking screenshot in android with support multiple screen sizes

请在投票前重新阅读我的问题,我想在拍摄后立即在截图图像中添加图标或 png 图像

我不知道这是不是一个好方法,但我试过这个

private static Bitmap addWaterMark(Bitmap src, Context context, String waterMarkImage) {
    int w = src.getWidth();
    int h = src.getHeight();
    Bitmap result = Bitmap.createBitmap(w, h, src.getConfig());
    Canvas canvas = new Canvas(result);
    canvas.drawBitmap(src, 0, 0, null);

    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    int width = metrics.widthPixels;
    int height = metrics.heightPixels;
    Log.d(TAG, "Width X Height " + width + " X " + height);

    Point point = new Point();
    display.getSize(point);
    int maxX = point.x;
    int maxY = point.y;
    point.set(maxX, maxY);

    int maxWidth = (70 * width) / 100;
    int maxHeight = (80 * height) / 100;
    Log.d(TAG, "maxWidth X maxHeight " + maxWidth + " X " + maxHeight);

    Bitmap waterMark = null;
    if (waterMarkImage != null) {
        byte[] decodedByte = Base64.decode(waterMarkImage, 0);
        waterMark = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
        waterMark = Bitmap.createScaledBitmap(waterMark, 250, 250, true);
    } else {
        waterMark = BitmapFactory.decodeResource(context.getResources(), R.drawable.sharelogo1);
    }
    canvas.drawBitmap(waterMark, maxWidth, maxHeight, null);

    return result;
}

它工作正常,但水印图像大小和 position 不能按我想要的方式工作(不支持所有屏幕尺寸或分辨率)

在您的代码段更改中

waterMark = Bitmap.createScaledBitmap(waterMark, 250, 250, true);

经过

waterMark = Bitmap.createScaledBitmap(waterMark, getpixels(250), getpixels(250), true);

并添加以下方法将 dp 转换为像素

private float getpixels(float dipValue) {
        return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, Resources.getSystem().getDisplayMetrics());
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM