gpt4 book ai didi

Android - 将位图快速传递给 Activity 的好方法

转载 作者:行者123 更新时间:2023-11-30 01:49:54 25 4
gpt4 key购买 nike

不在设备上存储将位图发送到另一个 Activity 的最佳方式是什么?
如果我 putExtra(Bitmap),我会遇到缓冲区问题,因为 Bitmap 太大了。
现在我用这个但是它太慢了:

Intent intent = new Intent(context, ImageScreen.class);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bytes = stream.toByteArray();
intent.putExtra("image",bytes);
context.startActivity(intent);

最佳答案

你说位图太大,那么最好的解决办法是把Bitmap写在你应用的私有(private)存储中,然后把文件路径传给下一个activity。将位图写入文件并检索文件路径的代码如下

public String createBitmapFile(Bitmap bitmap) {
String fileName = "image";
try {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, bytes);
FileOutputStream fo = openFileOutput(fileName, Context.MODE_PRIVATE);
fo.write(bytes.toByteArray());
fo.close();
} catch (Exception e) {
fileName = null;
}
return fileName;
}

然后在下一个 Activity 中你可以做类似的事情

Bitmap bitmap = BitmapFactory.decodeStream(context
.openFileInput(fileName));

稍后要删除文件,您可以简单地使用。

if(activity.deleteFile(imageName))
Log.i(TAG, "Image deleted");

关于Android - 将位图快速传递给 Activity 的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33223813/

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