采取适当的截图
Take proper screenshot
我想寻求帮助。我想截屏。这是有效的,但 ImageView 的圆角在截取的屏幕截图上不是圆角的(并且也缺少高程阴影)。我用了
imageView.setClipToOutline(true);
让这个在 phone 上工作,但在屏幕截图上它们是矩形的。
这些是我的截图工具:
public class ScreenShotUtils {
public static Bitmap screenShotFromCanvas(View view) {
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),
view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}
public static Bitmap screenShotFromDrawingCache(View view) {
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.destroyDrawingCache();
view.setDrawingCacheEnabled(false);
return bitmap;
}
两种方法的结果相同。
但是我注意到,如果我关闭硬件加速,布局看起来和屏幕截图上的一样。
截图后是这样的:
应该是这样的:
最后我用 MediaProjectionManager 解决了我的问题。
我想寻求帮助。我想截屏。这是有效的,但 ImageView 的圆角在截取的屏幕截图上不是圆角的(并且也缺少高程阴影)。我用了
imageView.setClipToOutline(true);
让这个在 phone 上工作,但在屏幕截图上它们是矩形的。
这些是我的截图工具:
public class ScreenShotUtils {
public static Bitmap screenShotFromCanvas(View view) {
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),
view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}
public static Bitmap screenShotFromDrawingCache(View view) {
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.destroyDrawingCache();
view.setDrawingCacheEnabled(false);
return bitmap;
}
两种方法的结果相同。
但是我注意到,如果我关闭硬件加速,布局看起来和屏幕截图上的一样。
截图后是这样的:
应该是这样的:
最后我用 MediaProjectionManager 解决了我的问题。