GridView的最后固定显示一个增加图片,点击图片动态增加内容item
2017-06-30 11:24
531 查看
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" />
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" />
相关文章推荐
- GridView的最后固定显示一个增加图片,点击图片动态增加内容item
- 类似微信查看群所有成员的动态伸展GridView,ScrollView做父控件(最后增加一个可添加的图片)
- android的GridView的第一个item(图片)出现显示不正常(多出固定区域一部分蓝色边框)。解决方法
- 如何实现点击GridView中一个图片后,如何传递至一个新的Activity中的imageview里面显示?
- ListView点击Item更换显示内容图片
- 08-27 GridView(点中后,图片被蒙住<蒙板>)、Toast(点击后显示提示的内容,一会儿自动消失)、Dialog(点击后显示对话框)
- Android中GridView中Item点击背景图片的显示改变
- 解决GridView动态设置宽高导致第一个item点击不响应或显示不正常问题
- ECCMS下显示文章内容的图片时超出大小自动缩小,点击放大图片
- Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
- 同一页面中实现点击其中一个iframe中的链接后,将链接内容显示到另一iframe
- GridView使用lightbox,鼠标点击显示图片效果
- 在窗体上放置一个标签、一个treeviw控件。窗体打开时,动态为treeviw控件添加节点,选择某个节点后,标签上显示所选内容。
- 遍历指定目录下的图片文件 显示在gridview 并添加点击事件
- 如何完成在一个图片中,点击不同区域显示不同的结果
- 安卓 相机或相册图片上传至手机界面并显示 最后上传至服务器(界面xml布局代码前一个文章有)
- html 列表中 内容长 点击详情 出一个div框显示详细内容
- Gridview中合并单元格,某字段的内容相同时如何只显示一个,屏蔽相同列或行的内容
- 点击一个文本框,弹出一个层,点击层上的内容,文本框中内容显示层上的内容,层消失
- F:在datagrid中 怎么实现 点击一行(多列)传一个id过去到第二页显示其具体内容,不用按钮、链接等?