学习内容: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
}
}