如何在 android 中创建图像滚动视图的位图?

how to create bitmap of scollview of images in android?

我在 ,android 制作了一个幻灯片演示。我将图像绑定到我的 LinearLayout 运行时,现在我想将整个可滚动视图保存到位图,我尝试了很多但都提供了仅将当前可见屏幕保存到位图的解决方案,任何人都可以帮助我如何保存整个可滚动视图在位图中查看(屏幕不可见),我的代码如下:

xml

<HorizontalScrollView
    android:id="@+id/horizontal_scroll_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="55dp"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="55dp"
    android:scrollbars="none" >

    <ScrollView
        android:id="@+id/scroler"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:scrollbars="none" >

        <LinearLayout
            android:id="@+id/mygallery"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" />
    </ScrollView>
</HorizontalScrollView>

java

View insertPhoto(int i) {
    LinearLayout layout = new LinearLayout(getApplicationContext());
    layout.setLayoutParams(new LayoutParams(252, 252));
    layout.setGravity(Gravity.FILL);

    final ImageView imageView = new ImageView(getApplicationContext());
    imageView1 = new ImageView(getApplicationContext());
    imageView.setLayoutParams(new LayoutParams(250, 250));
    imageView.setScaleType(ImageView.ScaleType.FIT_XY);

    imageLoader.displayImage("file://" + dataT.get(i).sdcardPath,
            imageView, new SimpleImageLoadingListener() {

                public void onLoadingStarted(String imageUri, View view) {
                    imageView.setImageResource(R.drawable.no_media);
                    super.onLoadingStarted(imageUri, view);
                }
            });
    layout.addView(imageView);
    return layout;
}

使用它我制作了垂直方向的胶片。现在我想要这个胶片的位图来保存它。

public static Bitmap loadBitmapFromView(View v) {
        Bitmap b = null;
            v.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            b = Bitmap.createBitmap(v.getMeasuredWidth(),
                    v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
            Canvas c = new Canvas(b);
            v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
            v.draw(c);
        saveImageToInternalStorage(b);
        return b;
    }