gpt4 book ai didi

java - 如何在android中制作完整 ScrollView 的图像

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:48 27 4
gpt4 key购买 nike

如何在 android 中截取完整 ScrollView 的屏幕截图?我在 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;
}

这是我最终使用的代码。它使 Activity 屏幕的图像与其他区域一样暗。当使用这个 android make screenshot of entire layout

xml布局文件内容

<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>

最佳答案

尝试通过 scrollview 获取位图。这可能对你有帮助。我正在获取整个 View 的位图。需要将此代码与 Handler 或 layoutObserver 一起使用,因为这仅在布局膨胀后才有效。我试过使用延迟 2 秒的 Handler。

ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView);
Bitmap bitmap = Bitmap.createBitmap(
scrollView.getChildAt(0).getWidth(),
scrollView.getChildAt(0).getHeight(),
Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bitmap);
scrollView.getChildAt(0).draw(c);

//Do whatever you want with your bitmap

saveBitmap(bitmap);

关于java - 如何在android中制作完整 ScrollView 的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34221814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com