Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带阴影的Android屏幕截图_Android_Xamarin_Screenshot_Android Elevation - Fatal编程技术网

带阴影的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&谢谢。你能告诉我如何在这里捕捉截图的重要部分吗:我很难找到它。谢谢@公用软件^^^