Android 位图布局的屏幕截图

Android screenshot of a layout to bitmap

我正在尝试截取由两个图像视图组成的相对布局。其中一个 imageview 可以在触摸时移动。

代码如下所示

 <RelativeLayout
 android:id="@+id/imageLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
    android:id="@+id/imgPhoto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
   />

<ImageView
    android:id="@+id/imgBackground"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:layout_centerVertical="true"
    />
 </RelativeLayout>

以下是我创建布局位图的代码。

        imageLayout.setDrawingCacheEnabled(true);
        imageLayout.buildDrawingCache();
        Bitmap mergedImage = imageLayout.getDrawingCache();

代码运行良好,可以截取两张图片。但是,当我四处移动 imgPhoto 时,屏幕截图不会反映更改后的位置。它仍然显示原始未移动的 imgPhoto。我该如何解决?谢谢

在重试之前尝试禁用绘图缓存:

imageLayout.setDrawingCacheEnabled(true);
imageLayout.buildDrawingCache();
Bitmap mergedImage = imageLayout.getDrawingCache();
imageLayout.setDrawingCacheEnabled(false);

应该可以。

您也可以使用View.destroyDrawingCache()