我正在尝试截取具有阴影(高度)的 CardView
的屏幕截图。但是,屏幕截图没有阴影。
有任何想法吗?
这是我的代码:
View v = mView.RootView;
v.DrawingCacheEnabled = true;
Bitmap b = v.DrawingCache;
最佳答案
阴影(Elevation
在 API25+ 中)是硬件加速的,并且不可用于 View 级别的缓存。
此外,如果您关闭 View
(实际上是其父级)的硬件加速,那么海拔效果也会被禁用,因此无法用于缓存...
(aView.Parent as View).SetLayerType(LayerType.Software, null);
View 缓存捕获示例:
Bitmap CaptureView(View view)
{
if (view.IsHardwareAccelerated)
Toast.MakeText(ApplicationContext, "View Is Hardware Accelerated, Effects will not be captured", ToastLength.Long).Show();
view.BuildDrawingCache();
Bitmap bitmap = view.GetDrawingCache(false);
Bitmap bitmapCopy = bitmap.Copy(Bitmap.Config.Argb8888, false);
view.DestroyDrawingCache();
return bitmapCopy;
}
关于Android 带有阴影的 View 的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42212600/