android - 将任何 View 转换为图像并保存

标签 android android-framelayout

<分区>

谁能帮我知道如何将 FrameLayout 的内容捕获到图像中并将其保存到内部或外部存储空间。

如何将任何 View 转换为图像

最佳答案

尝试将 View (帧布局)转换为位图:

public Bitmap viewToBitmap(View view) {
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);
    return bitmap;
}

然后,将您的位图保存到一个文件中:

try {
        FileOutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory() + "/path/to/file.png");
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, output);
        output.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

不要忘记在 AndroidManifest.xml 中设置写入存储的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

关于android - 将任何 View 转换为图像并保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21725916/

相关文章:

Android 类路径

android - 如何为我的离线应用程序使用大尺寸图像

java - Android - 同步线程与onSensorChanged发送udp数据包

Android 布局 - 不显示 ImageView

android - Jsoup - Android - 从表单数据/输入中解析信息

java - Android 对支持多种屏幕尺寸的困惑

android - fragment 中的 Recyclerview 位于 nestedscrollview 滚动问题内

android - 如何动态设置FrameLayout的宽度和高度android?

Android:旋转和调整 FrameLayout 的大小

android - 膨胀的框架布局上的按钮未触发点击事件