我有一个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)