如何实Android中现两个activity的图片传递?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实Android中现两个activity的图片传递?相关的知识,希望对你有一定的参考价值。

如何实android中现两个activity的图片传递,其中一个activity控件为listview,每个item的图片都不一样,我点击一个item就会传递其中图片就会传到另外activity中的imageview控件中显示出来?点击下一个就会传下一张图片?求代码?

你可以得到每个item的图片,然后将图片转流,然后intent将图片的字节数组传递过去,然后在第二个activity中,使用bitmapfactory的方法将流再转成bitmap,然后set进去。追问

有详细的代码可以参考下吗?

追答

额。这个你先自己写,我等会给你找找看。
第一个activity
InputStream in=this.getResources().openRawResource(R.drawable.ic_launcher);
第二个activity
Bitmap bit = BitmapFactory.decodeStream(in);
然后比就可以往imageview里面set了。

追问

R.drawable.ic_launcher 这个是图片的路径吗?这样写不是定死了 只能传这一张图片不会变吗?

追答

我仅仅是给你参考。你的listview是不是很多图片,每个图片都有id,然后你用的是什么适配器?simpleadapter?这个对应的是你数组to 里面的id。你自己想想。其实没有那么难。

追问

方便加下你的qq吗?

追答

1290507307

参考技术A 为什么非要实现Activity间的传递,你的ListView显示的图片应该是存在数组中吧,再点击列表时肯定会点击的item坐标,把坐标传递过去。在另一个页面作为数组下标取出图片。追问

不是 我图片是放在drawable里面的 ,然后我是将图片插入到数据库 从数据读取显示在listview里面的

参考技术B 假若图片是bitmap类型
intent.putExtra("bitmap", new Parcelable[]bitmap); Bitmap实现了Parcelable接口 所以可以序列化传递过去
参考技术C intent 传参 或者 application

Android 如何获取activity返回的数据?

最近在做一个AppWidget,就是手机桌面上的一个相框,用来显示图片。遇到的一个卡壳的问题是,如何获取系统媒体库内的图片并显示在这个相框中。通过点击Widge内的ImageView打开媒体库已经实现,使用Service打开,方法如下:
Intent mediaIntent =
new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
mediaIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
通过这个方法可以打开系统的媒体库。
问题来了,点击图片以后,如何在service中获取这个图片的Uri??
在activity中可以通过startActivityForResult()来获取媒体库返回的数据,但是在service没有这个函数,如何获取返回的Uri呢?
或者还有其他什么方法,请高手赐教,感激不尽!!!

参考技术A @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data)
Uri selectedImage = data.getData();
String[] filePathColumn = MediaStore.Images.Media.DATA ;
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
追问

我想问一下,在service里面没有这个OnActivityResult()函数,如何实现这个函数??

追答

在Service 中 你为什么要 OnActivityResult()这个方法了,在Service中 你可以使用广播去给Activity传递数据,更新UI

追问

我现在想做的是一个桌面相框widget,点击ImageView就能够打开媒体库,选择图片以后就可以更新Widget中的显示。没有使用Activity。如何用广播传递数据这个我能实现。现在就卡壳在如何在不适用配置activity的情况下使用service来打开媒体库并获得返回值。

追答

你把代码发我邮箱 439606935@qq.com 我帮你看看吧

参考技术B 使用set和get方法。追问

能不能具体讲讲呢??

追答

不好意思上面说错了,是put

首先
Intent intent = new Intent();
intent.setClass(activity1.this, activity2.class); //描述起点和目标
Bundle bundle = new Bundle(); //创建Bundle对象
bundle.putString("something", "Activity1发来的数据"); //装入数据
intent.putExtras(bundle); //把Bundle塞入Intent里面
startActivity(intent); //开始切换

在你新的activity初始化的方法里

Intent intent = this.getIntent(); //获取已有的intent对象
Bundle bundle = intent.getExtras(); //获取intent里面的bundle对象
string = bundle.getString("something"); //获取Bundle里面的字符串

追问

首先谢谢你。你这个方法我知道是不同的activity传递数据。我用的那个Intent是打开系统的Image媒体库,这个应该是系统的Activity。
还有,通过这个Intent.Action_PICK,获取需要的数据以后,是以什么形式返回数据的?如果是Itnent,如果截获?如果是Broadcast,action 字符串是?

追答

不好意思这个没有研究过。

以上是关于如何实Android中现两个activity的图片传递?的主要内容,如果未能解决你的问题,请参考以下文章

android中ImageView怎么实现两个图片切换时的动画 就像两个Activity之间的overridePendingTransition一样

Qt 如何连接到 android OS 中现有的 SQLite 文件?

Android寒假实训云笔记总结——欢迎页

最老程序猿创业开发实训1---Android应用架构之MVC

Android 如何获取activity返回的数据?

android开发 如何从一个activity中的两个按钮分别跳转到另外两个activity?