在Android中的GridView中更改ImageView内容

时间:2012-05-02 21:04:09

标签: android gridview imageview

我是Android和Java的新手。我正在构建一个应用程序,允许用户按下一个按钮,启动图像选择器,他们可以从SD卡上的图像中选择。该应用程序使用带有2个单元格的网格视图加载。一个单元格具有包含默认图像的图像视图。另一个是按钮。一旦选择了图像,图像视图就需要显示在网格视图的图像视图中。

我正在使用从图像uri解码的字符串路径来创建位图。然后我调用imageView.setImageBitmap(位图)。这无所事事。我尝试使用可绘制文件夹中的不同图像更新图像资源,但仍然没有。我在我的活动中在网格下面添加了一个单独的图像视图,并且该图像正在更新,这让我相信这与网格视图有关(这是我的第一个网格视图)。

非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:2)

如果你只有两个单元格,那么

GridView可能不是正确的选择。使用您正在处理的两个项目的简单LinearLayout可能会更容易。

但是,这是你使用GridView

的方式

通过扩展BaseAdapter来创建适配器。最重要的方法是getView(),但这是你应该做的工作量最少的地方。

GridView重新绘制时,它将针对每个可见位置进行处理,并为每个位置调用getView()。您将获得View。如果视图为null,请从XML资源中提取新资源,填充该资源并将其返回。如果视图不是null,请使用适当的数据填充现有视图。通过回收视图来提高窗口小部件的效率。

您需要的技巧是,当您想要更改图像时,需要在适配器上调用notifyDataSetChanged()以触发重绘(即在视图中填充新图像时适当的细胞)。

这是两分钟的版本。在Google I / O上一两年后,他们在The World of ListView上进行了一次演讲并将其发布在YouTube上。这是一个很好的谈话,几乎所有适用于GridView的内容。