Android活动中图片传递方法详解
需积分: 10 128 浏览量
更新于2024-09-10
收藏 1KB TXT 举报
"activity中图片传递"
在Android应用开发中,经常需要在不同的Activity之间传递数据。这个场景中,我们关注的是如何在两个Activity之间传递图片。这里涉及到的主要知识点包括Bitmap对象的使用、Intent的传递机制以及Activity之间的通信。
首先,让我们分析给定的代码片段。在`MainActivity`中,有一个`Bitmap`对象`bitmapaa`,它通过`BitmapFactory.decodeResource()`方法从资源文件`R.drawable.aa`加载了图片。这个方法将资源ID转换为Bitmap对象,以便在界面上显示或进一步处理。
```java
bitmapaa = BitmapFactory.decodeResource(getResources(), R.drawable.aa);
```
然后,当用户触发某个操作(比如点击一个按钮)时,`MainActivity`会启动一个新的`BActivity`并将`bitmapaa`传递过去。这是通过创建一个Intent并使用`putExtra()`方法实现的:
```java
Intent intent = new Intent(MainActivity.this, BActivity.class);
intent.putExtra("bitmapaa", bitmapaa);
startActivity(intent);
```
在`BActivity`中,我们需要接收并处理这个传递过来的Bitmap。在`onCreate()`方法中,首先设置了布局,并找到了一个ImageView来显示图片:
```java
iv_meinv = (ImageView) findViewById(R.id.iv_meinv);
```
然而,代码没有展示如何从Intent中取出Bitmap并设置到ImageView上。为了完成图片的传递,我们应该在`BActivity`的`onCreate()`方法中添加以下代码:
```java
Intent intent = getIntent();
if (intent != null) {
Bundle extras = intent.getExtras();
if (extras != null) {
Bitmap bitmap = (Bitmap) extras.getParcelable("bitmapaa");
if (bitmap != null) {
iv_meinv.setImageBitmap(bitmap);
}
}
}
```
这里,我们从Intent的Extras中获取了传递过来的Bitmap,并将其设置到ImageView上。注意,Bitmap是Parcelable接口的实现,所以它可以被直接放入Intent中进行传递。
在实际开发中,传递大尺寸的Bitmap(如图片)可能会导致内存问题,因为Bitmap占用的内存空间可能很大。因此,通常建议在传递之前压缩图片或者使用其他方式减小内存消耗,比如使用Uri而不是直接传递Bitmap,或者使用Parcelable接口的实现类如Glide或Picasso等库来加载和管理图片。
此外,如果图片是从网络获取的,可以考虑使用异步加载策略,避免阻塞主线程。如果是本地资源,确保资源文件大小适中,以免占用过多内存。同时,记得在不再使用Bitmap时及时释放,以防止内存泄漏。
2021-01-04 上传
2014-11-25 上传
2015-06-08 上传
2023-06-09 上传
2023-04-07 上传
2020-09-02 上传
2022-09-28 上传
2021-01-20 上传
foreacher
- 粉丝: 0
- 资源: 3
最新资源
- Android应用源码利用poi将内容填到word模板-IT计算机-毕业设计.zip
- mdi-es:材料设计图标导出为ES模块
- LocationSearch
- 行业文档-设计装置-一种利用浸胶纸作为过渡联接体的胶合板.zip
- ImageProcessingApp:使用流行的MVC架构的图像处理应用程序
- hideandseek:Hide & Seek 是一款开源的多人在线街机游戏,对抗两支捉迷藏者团队,玩法有趣快节奏。 项目已从 https 移出
- angular-first-app
- 数据库课程设计-家庭理财管理.zip
- MochaBabelCoverage:一个 Mocha 运行器,支持对包含 JSX 的文件运行 Mocha,并支持覆盖率报告
- 脑机接口BCI-eeglab安装包
- grantwforsythe.github.io
- 性能测试工具LoadRunner书籍(14本)目录知识点(思维导图加图).rar
- ArgRouter:为js函数添加重载功能
- 2D形状
- android应用源码合肥工业大学客户端源码-IT计算机-毕业设计.zip
- PdfFormFillerUTF-8:带有命令行或 WWW 界面的简单 PDF Form Filler 实用程序。-开源