Java 如何在android中制作完整滚动视图的图像

Java 如何在android中制作完整滚动视图的图像,java,android,image-processing,screen-scraping,Java,Android,Image Processing,Screen Scraping,如何在android中拍摄完整滚动视图的屏幕截图? 我在stackoverflow中发现了很多问题,但都没有解决我的问题 private void SaveImage(Bitmap finalBitmap) { String root = Environment.getExternalStorageDirectory().toString(); File myDir = new File(root + "/saved_images"); myDir.mkdirs();

如何在android中拍摄完整滚动视图的屏幕截图? 我在stackoverflow中发现了很多问题,但都没有解决我的问题

private void SaveImage(Bitmap finalBitmap) {

    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/saved_images");
    myDir.mkdirs();
    Random generator = new Random();
    int n = 10000;
    n = generator.nextInt(n);
    String fname = "Image-"+ n +".jpg";
    File file = new File (myDir, fname);
    if (file.exists ()) file.delete ();
    try {
        FileOutputStream out = new FileOutputStream(file);
        finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
        out.flush();
        out.close();

    } 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.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
    v.draw(c);
    return b;
}
这是我最后使用的代码。它给出了活动屏幕的图像,其他区域为黑色。 用这个的时候

xml布局文件内容
尝试传递scrollview以获取位图。这可能对你有帮助。我得到了整个视图的位图。需要在Handler或layoutObserver中使用此代码,因为这只有在布局膨胀后才有效。我已经尝试使用后延迟为2秒的处理程序

ScrollView ScrollView=(ScrollView)findViewById(R.id.ScrollView);

位图位图=位图.createBitmap( scrollView.getChildAt(0).getWidth(), scrollView.getChildAt(0.getHeight(), 位图.Config.ARGB_8888); 画布c=新画布(位图); scrollView.getChildAt(0).draw(c); //使用位图执行任何操作
保存位图(位图)好问题。我从来没有找到一个合适的解决方案。你的观点(xml)是什么??你能把它贴出来吗???@StefanBeike ya这会很有帮助的。如果我们在这里找到解决方案:位图Bitmap=Bitmap.createBitmap(scrollView.getChildAt(0.getWidth()、scrollView.getChildAt(0.getHeight()、Bitmap.Config.ARGB_8888);我想你应该试试这个,检查这个答案,寻找一个可能的解决方案。只需给出一个黑色图像。你可能直接在onCreate中使用它。我在button onclick中使用它。你是如何测试位图结果的?通过保存或在imageView中?写入文件时可能有问题…请尝试在imageView中进行检查。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:id="@+id/rootofall"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="#ffffff"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">



    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
    <ScrollView
        android:layout_below="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/scrollView"
        >
    <TextView android:text="@string/alotofdata"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/button"
        android:id="@+id/textView" />

    </ScrollView>
</RelativeLayout>