我已经在一个名为 display_image.xml 的屏幕中实现了galleryview,现在当用户选择图片并在同一屏幕 display_image.xml 上按下保存图像按钮时,我在其中显示了 sdcard 上可用的各种图像,然后应在他/她的个人资料图片中更改所选图像另一个屏幕。
我的问题是,我如何能够从一个屏幕获取该图像以更改另一个屏幕中的用户图片,并且该选定图像也应插入数据库中,以便稍后在用户登录时检索。让我告诉你,我的图像不是来自任何网络服务。
请帮帮我…………谢谢…………
我已经在一个名为 display_image.xml 的屏幕中实现了galleryview,现在当用户选择图片并在同一屏幕 display_image.xml 上按下保存图像按钮时,我在其中显示了 sdcard 上可用的各种图像,然后应在他/她的个人资料图片中更改所选图像另一个屏幕。
我的问题是,我如何能够从一个屏幕获取该图像以更改另一个屏幕中的用户图片,并且该选定图像也应插入数据库中,以便稍后在用户登录时检索。让我告诉你,我的图像不是来自任何网络服务。
请帮帮我…………谢谢…………
您可以通过两种方式做到这一点: 1)传递所选图像的SD卡路径并直接从imageview中的路径加载该图像。 2)您可以将图像转换为 byes[] 并传递 bytes[] 并取回图像。
希望你能得到我。祝你好运
使用“ activityForResult ”。
概念是通过调用开始您的图像选择活动
startActivityForResult(INTENT_OF_YOUR_IMAGECHOOSING_ACTIVITY);
现在在此活动中,当用户单击任何图像时,该事件的处理如下:此意图中的
一些OnClick(){<br>Intent resultIntent = new Intent();
设置图像的附加字节数组或图像的 sd 卡路径
然后打电话setResult(RESULT_OK, resultIntent);
这将在 HERE 方法中返回对上一个活动的调用,onActivityResult(int resultCode, ..., Intent data)
使用数据作为获取所需信息的意图
您需要做的第一件事是声明一个 Intent
Intent i_cp = new Intent(this,ImagePicker.class);
并使用startActivityForResult(i_cp, 111);
which 将寻找一些结果。在我们的例子中,图像的位置;一个整数值。
通过指定 request_code (111) 将用于在启动意图返回时识别结果。在这里我们不会使用setAction(i_cp.ACTION_PICK);
,setType("image/*");
因为我们不会返回图像,所以我们只会返回图像的位置。我们对 Intent 的使用将仅限于传递和检索整数值(值的位置)。
现在如何获取用户选择的图像位置。通过参数之一在 GalleryView 的 onItemClick 方法中获取位置
public void onItemClick(AdapterView parent, View v, int position,long rid)
现在声明一个变量,例如 int pos;并指定 -1 来标识图像是否被选中,如果图像被选中,则在按钮 saveimage 的 onclick 事件中传递值位置为
retIntent.putExtra("SelectedImage", pos);
并在onActivityForResult通过传递的请求代码识别意图并将该位置提取为
int pos = data.getExtras().getInt("SelectedImage");
并将其设置为
usr_im.setImageResource(ImagePicker.pics[pos]);
这个 pics[] 数组包含存储在res/drawable
应用程序文件夹之一中的所有图像 ID,将其声明为
public static Integer[] pics={values};
否则你将无法设置图像。