相关疑难解决方法(0)

在gridview适配器中,getView(position == 0)被调用太多次以在装载器中的setImageBitmap()时测量布局

我有一个GridView显示一些图标.

在我从Android开发者网站上有效地阅读这个显示位图之前,我正在从getView()适配器直接解码本地路径中的位图,如下所示:

public View getView(int position, View convertView, ViewGroup parent) {
      ...
      ImageView icon = ...... (from getTag() of convertView)
      icon.setImageBitmap(BitmapUtil.decode(iconPath));
      ...
}
Run Code Online (Sandbox Code Playgroud)

这种方式无论如何工作正常,我称之为[直接模式],getView()方法的输出日志应该是:

getView(0)   // measure kid's layout.
getView(0)
getView(1)
getView(2)
...
getView(n)       // when scrolling gridview.
getView(n+1)
...
getView(n+3)    // scrolling again.
getView(n+4)
...
Run Code Online (Sandbox Code Playgroud)

然后我试图将代码更改为有效显示位图的文章中提到的[Loader Mode] ,如下所示:

public View getView(int position, View convertView, ViewGroup parent) {
      ...
      ImageView icon = ...... (from getTag() of convertView)
      loadIcon(icon, …
Run Code Online (Sandbox Code Playgroud)

android android-gridview android-view

23
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

android-gridview ×1

android-view ×1