0

我已经在一个名为 display_image.xml 的屏幕中实现了galleryview,现在当用户选择图片并在同一屏幕 display_image.xml 上按下保存图像按钮时,我在其中显示了 sdcard 上可用的各种图像,然后应在他/她的个人资料图片中更改所选图像另一个屏幕。

我的问题是,我如何能够从一个屏幕获取该图像以更改另一个屏幕中的用户图片,并且该选定图像也应插入数据库中,以便稍后在用户登录时检索。让我告诉你,我的图像不是来自任何网络服务。

请帮帮我…………谢谢…………

4

3 回答 3

0

您可以通过两种方式做到这一点: 1)传递所选图像的SD卡路径并直接从imageview中的路径加载该图像。 2)您可以将图像转换为 byes[] 并传递 bytes[] 并取回图像。

希望你能得到我。祝你好运

于 2012-01-12T06:43:48.023 回答
0

使用“ activityForResult ”。
概念是通过调用开始您的图像选择活动

startActivityForResult(INTENT_OF_YOUR_IMAGECHOOSING_ACTIVITY);

现在在此活动中,当用户单击任何图像时,该事件的处理如下:此意图中的
一些OnClick(){<br>Intent resultIntent = new Intent(); 设置图像的附加字节数组或图像的 sd 卡路径

然后打电话setResult(RESULT_OK, resultIntent);


这将在 HERE 方法中返回对上一个活动的调用,onActivityResult(int resultCode, ..., Intent data)使用数据作为获取所需信息的意图

于 2012-01-12T06:58:13.027 回答
0

您需要做的第一件事是声明一个 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};

否则你将无法设置图像。

于 2012-01-30T12:15:58.933 回答