`
jk138
  • 浏览: 150608 次
  • 性别: Icon_minigender_1
  • 来自: 茂名
社区版块
存档分类
最新评论

GridView宫格图的使用

阅读更多

学习内容:1.GridView的使用

               2.AlertDialog显示框的使用

 

 

1.先在res文件夹的drawable三个文件夹下放入图片

 


2.写布局main.xml

 

   <?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/widget0"
    >
<GridView
    android:id="@+id/grid"
    android:layout_width="fill_parent"
    android:padding="30dip"
    android:columnWidth="52px"
    android:layout_height="210px"
    android:numColumns="5"
    />   
<ImageView
    android:id="@+id/ImageView_Big"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_x="95px"
    android:layout_y="250px"
    />
  
 </AbsoluteLayout>

 3.工程的Activity内容

     package com.chaowen;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.AdapterView.OnItemClickListener;

public class gridViewDemo extends Activity implements GridView.OnItemClickListener,GridView.OnItemSelectedListener{
    /** Called when the activity is first created. */
	private GridView my_GridView;
	private ImageAdapter myImageAdapter;
	private ImageView big_ImageView;
	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        my_GridView = (GridView)findViewById(R.id.grid);
        big_ImageView = (ImageView)findViewById(R.id.ImageView_Big);
        
        myImageAdapter = new ImageAdapter(this);
        //为my_GridView设置一个ImageAdapter
        my_GridView.setAdapter(myImageAdapter);
        
        
        /**
         * GridView的图片Items点击事件处理
         */
        my_GridView.setOnItemClickListener(this);
         
        
    }
    
  
    
    private class ImageAdapter extends BaseAdapter{
         //myContext为上下文
    	private Context myContext;
    	//GridView用来加载图片的ImageView
    	private ImageView the_imageView;
    	
    	//这是图片资源ID的数组
    	private Integer[] mImageIds = {R.drawable.a,R.drawable.b,R.drawable.c,
    			R.drawable.d,R.drawable.e,R.drawable.f,R.drawable.g};
    	
    	//构造方法
    	public ImageAdapter(Context myContext){
    		this.myContext = myContext;
    	}
    	//返回资源ID数组的长度
		@Override
		public int getCount() {
			return mImageIds.length;
		}
        
		//得到Items
		@Override
		public Object getItem(int position) {
			return position;
		}
		//得到Items的ID
		@Override
		public long getItemId(int position) {
			return position;
		}
        
		
		//处理gridview的每个Item
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			//创建一个ImageView
			the_imageView = new ImageView(myContext);
			//设置图像源于资源ID
			the_imageView.setImageResource(mImageIds[position]);
			//使Imageview与边界适应
			the_imageView.setAdjustViewBounds(true);
			//设置背景图片的风格
			the_imageView.setBackgroundResource(android.R.drawable.picture_frame);
			//返回带有多个图片Id的Imageview
			return the_imageView;

			
		}
    	
		//自定义获取对应位置的图片ID
		public Integer getCheckedImageIDPosition(int index){
			return mImageIds[index];
		}
    }


   //点击GridView中图片Items后显示一个AlterDialog提示框
	@Override
	public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
	    new AlertDialog.Builder(this)
	   .setTitle("图片浏览")
	    //获得对应的图片并显示
	    .setIcon(myImageAdapter.getCheckedImageIDPosition(arg2))
	    //添加一个按钮
	    .setPositiveButton("返回", new OnClickListener(){

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
	    	
	    }).show();
		
	}



	@Override
	public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
			long arg3) {
		//GridView中的图片移动焦点选中时,下面的大图ImageView显示相应的大图片
		  big_ImageView.setImageResource(myImageAdapter.getCheckedImageIDPosition(arg2));
		
	}


     //未选中GridView中的图片Items事件处理
	@Override
	public void onNothingSelected(AdapterView<?> arg0) {
		// TODO Auto-generated method stub
		
	}
    
    
    
    
      
}

  

 

 

 
  • 大小: 15.9 KB
  • 大小: 20.1 KB
  • 大小: 31.5 KB
  • 大小: 32.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics