带阴影的Android屏幕截图
我正在尝试拍摄一张有阴影(立面)的带阴影的Android屏幕截图,android,xamarin,screenshot,android-elevation,Android,Xamarin,Screenshot,Android Elevation,我正在尝试拍摄一张有阴影(立面)的cardwiew屏幕截图。但是,屏幕截图没有阴影。 有什么想法吗 这是我的代码: View v = mView.RootView; v.DrawingCacheEnabled = true; Bitmap b = v.DrawingCache; 阴影(Elevation在API25+中)是硬件加速的,不可用于视图级别的缓存 此外,如果关闭视图(实际上是其父视图)的硬件加速,则提升效果也将禁用,因此无法用于缓存 (aView.Parent as View).Se
cardwiew
屏幕截图。但是,屏幕截图没有阴影。有什么想法吗 这是我的代码:
View v = mView.RootView;
v.DrawingCacheEnabled = true;
Bitmap b = v.DrawingCache;
阴影(Elevation
在API25+中)是硬件加速的,不可用于视图级别的缓存
此外,如果关闭视图(实际上是其父视图)的硬件加速,则提升效果也将禁用,因此无法用于缓存
(aView.Parent as View).SetLayerType(LayerType.Software, null);
视图缓存捕获示例:
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;
}
这意味着我无法捕捉阴影?有解决方法吗?@amitairos您可以使用5.0+中的投影API,获得主屏幕/默认显示的曲面
,然后将该曲面剪裁到您希望捕获的视图的父坐标(请记住,“阴影”不在定义它的视图中,而是在该视图的父视图中……)。这真的取决于你的用例……你能解释一下如何获得主屏幕的表面吗?我对此不熟悉。@amitairos Xamarin有5.0 API的示例,您应该查看媒体投影API&谢谢。你能告诉我如何在这里捕捉截图的重要部分吗:我很难找到它。谢谢@公用软件^^^