public
class
GridViewAdapter
extends
BaseAdapter {
private
Context context;
private
List<Integer> list;
LayoutInflater layoutInflater;
private
ImageView mImageView;
public
GridViewAdapter(Context context, List<Integer> list) {
this
.context = context;
this
.list = list;
layoutInflater = LayoutInflater.from(context);
}
@Override
public
int
getCount() {
return
list.size()+
1
;
//注意此处
}
@Override
public
Object getItem(
int
position) {
return
list.get(position);
}
@Override
public
long
getItemId(
int
position) {
return
position;
}
@Override
public
View getView(
int
position, View convertView, ViewGroup parent) {
convertView = layoutInflater.inflate(R.layout.grid_item,
null
);
mImageView = (ImageView) convertView.findViewById(R.id.item);
if
(position < list.size()) {
mImageView.setBackgroundResource(list.get(position));
}
else
{
mImageView.setBackgroundResource(R.drawable.pic3);
//最后一个显示加号图片
}
return
convertView;
}
}
==========================================================
public
class
MainActivity
extends
ActionBarActivity {
private
List<Integer> mDatas;
private
GridView mGridView;
private
GridViewAdapter adapter;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGridView=(GridView) findViewById(R.id.gv_test);
initDatas();
adapter=
new
GridViewAdapter(MainActivity.
this
,mDatas);
mGridView.setAdapter(adapter);
mGridView.setOnItemClickListener(
new
OnItemClickListener() {
@Override
public
void
onItemClick(AdapterView<?> parent, View view,
int
position,
long
id) {
if
(position==parent.getChildCount()-
1
){
mDatas.add(R.drawable.pic1);
Toast.makeText(MainActivity.
this
,
"您点击了添加"
,
1
).show();
adapter=
new
GridViewAdapter(MainActivity.
this
, mDatas);
mGridView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
});
}
private
void
initDatas() {
mDatas=
new
ArrayList<>();
mDatas.add(R.drawable.pic1);
mDatas.add(R.drawable.pic1);
mDatas.add(R.drawable.pic1);
mDatas.add(R.drawable.pic1);
mDatas.add(R.drawable.pic1);
}
}
=========================================
main.xml
布局
<RelativeLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
xmlns:tools
=
"http://schemas.android.com/tools"
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
>
<GridView
android:id
=
"@+id/gv_test"
android:numColumns
=
"3"
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
/>
</RelativeLayout>
=============================================
grid_item
布局
<LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
android:orientation
=
"vertical"
>
<ImageView
android:id
=
"@+id/item"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
/>