GridView之BaseAdapter的用法简单案例(二)【子元素item的高度暂时不知道控制】
来源:互联网 发布:最好java培训 编辑:程序博客网 时间:2024/05/21 02:33
一个简单的GridView来预览选择 Imageview来显示的案例
效果如下,有一个问题暂时没有解决就是GridView中 子元素item的高度控制暂时不知道 所以效果很差,这里只是简单的介绍用法。所以暂时不深究。
首先我们将上面需要的布局定义一个
<LinearLayout 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" android:orientation="vertical" tools:context="${relativePackage}.${activityClass}" > <ImageView android:id="@+id/image" android:layout_width="240dp" android:layout_height="240dp" android:layout_gravity="center"/> <GridView android:id="@+id/grid01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:numColumns="4" android:horizontalSpacing="1pt" android:verticalSpacing="1pt" android:gravity="center"></GridView></LinearLayout>
然后是代码实现部分,
package com.example.baseadapter03;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;public class MainActivity extends Activity { //声明成员变量 private ImageView image; private GridView grid01; int [] imageIds = new int[]{ R.drawable.umeng_socialize_light_bar_bg_pad, R.drawable.umeng_update_btn_check_on_focused_holo_light, R.drawable.abc_list_pressed_holo_dark, R.drawable.ic_banana_rank, R.drawable.ic_bangumi_new, }; //创建一个集合存放数据 private List<Map<String,Object>> getdata(){ List<Map<String,Object>> listitem = new ArrayList<Map<String,Object>>(); //循环将数据放入图片 for(int i = 0 ;i<imageIds.length;i++){ Map<String,Object> map = new HashMap<String,Object>(); map.put("imageIds", imageIds[i]); listitem.add(map); } return listitem; } //创建一个ViewHolder,临时保存从getview中返回的view,方便下次调用 public final class ViewHolder{ public ImageView imageIds; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //findViewById找到布局中的控件 grid01 = (GridView)findViewById(R.id.grid01); image = (ImageView)findViewById(R.id.image); //为gridview创建一个适配器并将其绑定在上面 MyAdapter mAdapter = new MyAdapter(this,getdata()); grid01.setAdapter(mAdapter); //为gridview创建一个点击监听器,当我们点击某张图片时,imageview控件能显示这张图片 grid01.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { image.setImageResource(imageIds[position]); } }); } //创建一个一个适配器继承BaseAdapter,用于处理数据 class MyAdapter extends BaseAdapter{ private LayoutInflater mInflater; private List<Map<String,Object>> getdata; //利用构造器将需要用到的参数传入 public MyAdapter(Context context,List<Map<String,Object>> getdata){ this.mInflater = LayoutInflater.from(context); this.getdata = getdata; } @Override public int getCount() { //返回值为数据 集 中的条目数量 return getdata.size(); } @Override public Object getItem(int position) { //返回值为数据集中索引对应的数据内容, return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder =null; if (convertView == null ){ holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.activity_main,null); holder.imageIds = (ImageView)convertView.findViewById(R.id.image); convertView.setTag(holder); }else{ holder = (ViewHolder)convertView.getTag(); } holder.imageIds.setBackgroundResource((Integer) getdata.get(position).get("imageIds")); return convertView; } }}
0 0
- GridView之BaseAdapter的用法简单案例(二)【子元素item的高度暂时不知道控制】
- ListView之BaseAdapter的用法简单案例(四)
- BaseAdapter的一个简单案例
- listview item子view的自适应高度后不显示
- GridView设置Item高度,解决第一个item显示不正常以及事件不响应的问题
- 如何让高度不固定的list的子Item高度充满list
- 设置gridview里面item的高度
- GridView里面的Item高度设置
- 自定义GridView 中item 的高度
- GridView Item显示的高度过长
- ListView简单案例之BaseAdapter(一)
- Android GridView之添加分隔线,动态设置高度,实现高度自适应,并解决第一个item不显示的问题
- 通知(二)你可能不知道的Notification用法
- 如何将子item充满Gridview高度
- Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法
- 使用baseadapter控制listview内的item可用状态
- 高度分装的BaseAdapter
- 父元素自适应子元素的高度
- java集合框架03——ArrayList和源码分析
- 【腾讯内部工具分享】内存泄漏分析工具tMemoryMonitor
- Windows下面如何安装Beautiful Soup
- 常见的排序算法C++实现
- OPlayer
- GridView之BaseAdapter的用法简单案例(二)【子元素item的高度暂时不知道控制】
- 剑指offer-面试题36:数组中的逆序对
- Android EditText 自定义带删除按钮
- Java时间日期工具类
- Android高效加载大图、多图解决方案,有效避免程序OOM
- iOS 如何让你的应用支持通过iTunes可以与应用文件共享(可以通过iTunes向documents文件夹下导入文件)
- 利用Java Apache POI 生成Word文档
- Caused by: java.lang.IllegalArgumentException: the bind value at index 1 is null
- 【js】:利用javascript打开网页