如何将Bitmap对象从一个活动传递到另一个活动

如何将Bitmap对象从一个活动传递到另一个活动

在我的活动中,我创建了一个Bitmap对象,然后我需要启动另一个Activity,我怎么通过这个?Bitmap对象来自子活动(即将启动的子活动)?



墨色风雨
浏览 723回答 3
3回答

长风秋雁

Bitmap实施器Parcelable,这样你就可以随心所欲地通过它了:Intent intent = new Intent(this, NewActivity.class);intent.putExtra("BitmapImage", bitmap);并在另一端取回它:Intent intent = getIntent(); Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");

元芳怎么了

由于Parceable(1mb)的大小限制,将位图在活动之间作为可解析的方式传递不是一个好主意。您可以将位图存储在内部存储的文件中,并在多个活动中检索存储的位图。这是一些示例代码。将位图存储在文件中MyImage在内部储存:public String createImageFromBitmap(Bitmap bitmap) {     String fileName = "myImage";//no .png or .jpg needed     try {         ByteArrayOutputStream bytes = new ByteArrayOutputStream();         bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);         FileOutputStream fo = openFileOutput(fileName, Context.MODE_PRIVATE);         fo.write(bytes.toByteArray());         // remember close file output         fo.close();     } catch (Exception e) {         e.printStackTrace();         fileName = null;     }     return fileName;}然后,在下一个活动中,您可以使用以下代码将该文件myImage解码为位图://here context can be anything like getActivity() for fragment, this or MainActivity.this Bitmap bitmap = BitmapFactory.decodeStream(context.openFileInput("myImage"));注大量的零和缩放位图检查是完整的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Android