修改获取屏尺寸为真实尺寸,优化截图尺寸和屏幕尺寸不一致问题

This commit is contained in:
lulee007
2018-01-03 14:01:50 +08:00
parent 9770588e67
commit 463f87860c
2 changed files with 10 additions and 2 deletions

View File

@@ -75,6 +75,7 @@ public class ImageWrapper {
int rowPadding = plane.getRowStride() - pixelStride * image.getWidth(); int rowPadding = plane.getRowStride() - pixelStride * image.getWidth();
Bitmap bitmap = Bitmap.createBitmap(image.getWidth() + rowPadding / pixelStride, image.getHeight(), Bitmap.Config.ARGB_8888); Bitmap bitmap = Bitmap.createBitmap(image.getWidth() + rowPadding / pixelStride, image.getHeight(), Bitmap.Config.ARGB_8888);
bitmap.copyPixelsFromBuffer(buffer); bitmap.copyPixelsFromBuffer(buffer);
bitmap = Bitmap.createBitmap(bitmap, 0, 0, image.getWidth(), image.getHeight());
return bitmap; return bitmap;
} }

View File

@@ -1,10 +1,13 @@
package com.stardust.util; package com.stardust.util;
import android.app.Activity; import android.app.Activity;
import android.graphics.Point;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.view.Display; import android.view.Display;
import android.view.Surface; import android.view.Surface;
import static java.lang.System.out;
/** /**
* Created by Stardust on 2017/4/26. * Created by Stardust on 2017/4/26.
*/ */
@@ -21,9 +24,13 @@ public class ScreenMetrics {
if (!initialized) { if (!initialized) {
DisplayMetrics metrics = new DisplayMetrics(); DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
deviceScreenHeight = metrics.heightPixels; // deviceScreenHeight = metrics.heightPixels;
deviceScreenWidth = metrics.widthPixels; // deviceScreenWidth = metrics.widthPixels;
deviceScreenDensity = metrics.densityDpi; deviceScreenDensity = metrics.densityDpi;
Point size = new Point();
activity.getWindowManager().getDefaultDisplay().getRealSize(size);
deviceScreenHeight = size.y;
deviceScreenWidth = size.x;
display = activity.getWindowManager().getDefaultDisplay(); display = activity.getWindowManager().getDefaultDisplay();
initialized = true; initialized = true;
} }