我有三个 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) {
}
}
生成的图像应该如下所示:
最佳答案
canvas.drawBitmap(handleBmp, 1, 1, null);
那个1,1,可以设置位置
关于java - 如何将多个 ImageView 保存为一个 Bitmap,同时保持 Android 中每个 ImageView 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39466552/