0

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

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

很感谢任何形式的帮助。

谢谢你。

4

1 回答 1

2

GridView如果您只有两个单元格,这可能不是正确的选择。LinearLayout使用包含您正在处理的两个项目的简单程序可能会更轻松。

但是,这里是你如何做到这一点GridView

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

GridView去重绘自己时,它将遍历每个可见位置并调用getView()每个位置。您将获得一个View. 如果视图是null,请从您的 XML 资源中扩充一个新视图,填充它,然后返回它。如果视图不是null,则使用适当的数据填充现有视图。通过回收视图,小部件变得高效。

您需要的技巧是,当您想要更改图像时,您需要调用notifyDataSetChanged()适配器以触发重绘(此时您将在视图中为适当的单元格填充新图像)。

那是两分钟的版本。在一两年前的 Google I/O 上,他们在The World ofListView上做了一次演讲,并将其发布在 YouTube 上。这是一个很好的谈话,几乎所有的东西都适用GridView

于 2012-05-02T21:42:05.970 回答