public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageview;
if (convertView==null){
imageview=new ImageView(MyActivity.this);
imageview.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
imageview.setPadding(5,0,5,0);
}else{
imageview=(ImageView)convertView;
}
imageview.setImageResource(imageId[position]);
return imageview;
}
当一张图片滑进屏幕的时候,调用这个getview()
?那么其中第一个if条件null
是什么?如何理解这里面的条件语句?
简单来说,是为了复用,避免每次从layout资源文件生成新的视图(或者是通过代码生成新的视图)。
比如像
ListView
或者GridView
,屏幕上若能显N个条目,那么getView
就被调用N次,以提供对应位置的视图。而复用之前已经生成的视图,可以提高效率。android.widget.Adapter源码文件中getView()方法的参数说明:
但你仍需要检查它是否为空,以及类型是否适当。