java - 如何将多个 ImageView 保存为一个 Bitmap,同时保持 Android 中每个 ImageView 的位置?

标签 java android bitmap

我有三个 ImageView,我需要将它们保存为一个位图。以下代码可将三个 ImageView 保存为一个位图,但它将每个图像推到左上角,从而破坏了用户看到的图像外观。其中两个 ImageView 填充了颜色,另一个是实际图像。如何将 ImageView 保存为一个位图,同时仍保持其在布局中的位置?

这是我迄今为止尝试过的:

    public void saveDrawer(){
        Bitmap mainBmp = backImage.getDrawingCache();
        Bitmap centerBmp = centerImage.getDrawingCache();
        Bitmap handleBmp = handleImage.getDrawingCache();

        Canvas canvas = new Canvas(mainBmp);
        canvas.drawBitmap(centerBmp, 1, 1, null);
        canvas.drawBitmap(handleBmp, 1, 1, null);

        OutputStream fOut = null;
        try {
            File root = new File(Environment.getExternalStorageDirectory()
                    + File.separator + "CustomDrawer" + File.separator);
            root.mkdirs();
            File sdImageMainDirectory = new File(root, "customdrawer.png");
            fOut = new FileOutputStream(sdImageMainDirectory);
            Log.d("Path", fOut.toString());
        } catch (Exception e) {
            Toast.makeText(this, "Error occured. Please try again later.",
                    Toast.LENGTH_SHORT).show();
        }

        try {
            mainBmp.compress(Bitmap.CompressFormat.PNG, 100, fOut);
            fOut.flush();
            fOut.close();
        } catch (Exception e) {
        }
    }

生成的图像应该如下所示:

enter image description here

但看起来像这样: enter image description here

最佳答案

canvas.drawBitmap(handleBmp, 1, 1, null);

那个1,1,可以设置位置

关于java - 如何将多个 ImageView 保存为一个 Bitmap,同时保持 Android 中每个 ImageView 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39466552/

相关文章:

android - 如何在 android 设备上下载 Launchpad ppa 存储库以安装在气隙 ubuntu 系统上

android - 将 json 数据存储到 SQLite 时出错

c# - AND C# 中的两个位图

android - 在 App Bundle 的动态特性模块中访问资源

android - Fresco 以编程方式将位图添加到缓存

android - 如何使用onDraw(Canvas)获取WebView的位图快照(Android)

java - java中如何通过socket发送EOF

Java 玩! 2 - 使用 cookie 进行用户管理

java - OpenShift webapps mysql java连接

java - junit - 预期值和实际值相同但测试结果失败