安卓控件使用系列27:GridView网格控件的使用方法

来源:互联网 发布:科比09年体测数据 编辑:程序博客网 时间:2024/05/02 01:04

GridView网格控件的使用是安卓中经常用到的控件,用于把数据库中的数据显示在手机屏幕上,下面我们来一起分享一下它的使用方法。

这个例子实现的是把一些图片以指定的排列方式显示在用户手机上的效果。

整体思路:在xml文件中定义一个GridView控件和一个ImageView控件,然后新建一个cell.xml文件,在里面定义一个ImageView控件;在活动中实现OnItemSelectedListener,OnItemClickListener,定义一个整型数组,存放各个图片资源的ID,把各个图片以遍历数组的形式依次加入到Map类型的动态数组中,定义一个适配器,把这个布局文件中ImageView控件和新建的布局文件关联,并将Map类型的动态数组绑定到这个适配器上,将这个适配器绑定到GridView控件上,在onItemClick这个方法中,给ImageView控件设置相应索引的图片,在onItemSelected这个方法中,给ImageView控件设置相应索引的图片(这个可以没有)。就这样实现了将一些图片展示以一定的排列顺序显示在用户手机上的效果。

activity_main.xml文件:

<LinearLayout     android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="horizontal"    >    <GridView         android:id="@+id/gridview"       android:layout_width="fill_parent"       android:layout_height="wrap_content"       android:horizontalSpacing="6dp"       android:verticalSpacing="6dp"       android:numColumns="4"       android:padding="20dp"        >           </GridView>     <ImageView             android:id="@+id/imageview"            android:layout_width="fill_parent"            android:layout_height="150dp"            />        </LinearLayout>

cell.xml文件:

 <ImageView        android:id="@+id/imageview"        android:layout_width="48dp"        android:layout_height="48dp"         />

MainActivity.java文件:

public class MainActivity extends Activity implements OnItemSelectedListener,OnItemClickListener{    private ImageView imageView;    private int[] resIds=new int[]{    R.drawable.new1,R.drawable.new2,R.drawable.new3,R.drawable.new4,R.drawable.new5,    R.drawable.new6,R.drawable.new7,R.drawable.new8,R.drawable.new9,R.drawable.new10    };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);GridView gridView=(GridView)findViewById(R.id.gridview);List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();for(int i=0;i<resIds.length;i++){//把所有图片都放到list中Map<String, Object> cell=new HashMap<String, Object>();cell.put("imageview", resIds[i]);list.add(cell);}//定义一个适配器,把本布局的imageview和定义控件的布局关联SimpleAdapter simpleAdapter=new SimpleAdapter(this,list,R.layout.cell,new String[]{"imageview"},new int[]{R.id.imageview});gridView.setAdapter(simpleAdapter);//绑定适配器imageView=(ImageView)findViewById(R.id.imageview);gridView.setOnItemClickListener(this);gridView.setOnItemSelectedListener(this);imageView.setImageResource(resIds[0]);}@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {// TODO Auto-generated method stubimageView.setImageResource(resIds[position]);}@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position,long id) {// TODO Auto-generated method stubimageView.setImageResource(resIds[position]);}@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}}

0 0
原创粉丝点击