我尝试将我的ScrollView转换为位图,我的ScrollView具有溢出屏幕的内容(因此滚动成为可能),在我
Ask here之后我可以在ScrollView中捕获我的活动,但是我遇到了一个问题,用于保存的位图屏幕截图不是创建所有视图,只是最后一个ScrollView,其余部分是黑屏,如下所示:
这是我为ScrollView中的所有视图截取屏幕截图的代码:
scroll_pp=(ScrollView)polis.findViewById(R.id.scroll_pp);
utktest=polis.findViewById(R.id.scroll_pp);
int totalHeight = scroll_pp.getChildAt(0).getHeight();
int totalWidth = scroll_pp.getChildAt(0).getWidth();
Bitmap b= MethodSupport.loadBitmapFromView(utktest, totalWidth, totalHeight);
String extr = Environment.getExternalStorageDirectory().toString() + File.separator + "Folder";
String fileName = "Test.jpg";
File myPath = new File(extr, fileName);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(myPath);
b.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), b, "Screen", "screen");
}catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
public static Bitmap loadBitmapFromView(View v, int width, int height) {
Bitmap b = Bitmap.createBitmap(width , height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.draw(c);
return b;
}
所以我的代码有问题所以我不能根据我的需要显示位图吗?
最佳答案 您需要获取ScrollView的第一个子项并将其转换为Bitmap.
例:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:id="@+id/rlChildContainer"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</RelativeLayout>
</ScrollView>
您应该尝试仅在加载屏幕并绘制布局时加载位图,不要从Activity的onCreate方法执行此操作.