原文网址 http://www.mypanz.info/?p=203
开发工具eclipse
开发环境windows 7
1、用eclipse新建一个android项目,
填上项目名称:GalleryDemo
2、依次打开res -> drawable-hdpi 把你喜欢的图片放在这里,并取一个好听的名字
3、打开main.xml添加如下代码:
<?xml version=“1.0″ encoding=“utf-8″?>
<!—使用RelativeLayout布局–>
<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:orientation=“vertical”
android:layout_width=“fill_parent”
android:layout_height=“fill_parent”
>
<!—添加一个Gallery,名字为gallery,长度与屏幕相同,与底部对齐,每个间隔为10dip–>
<Gallery
android:id=“@+id/gallery”
android:layout_width=“fill_parent”
android:layout_height=“wrap_content”
android:gravity=“center_vertical”
android:layout_alignParentBottom=“true”
android:spacing=“10dip”
/>
</RelativeLayout>
4、打开MainActivity.java,添加如下代码,不懂的部分看注释
package info.panz;
//引入各个包
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class MainActivity extends Activity {
//定义一个int型的数组,里面存放所有的资源文件(图片)
int[] resId = new int[]
{R.drawable.p1,R.drawable.p2,R.drawable.p3,R.drawable.p4,R.drawable.p4,
R.drawable.p6,R.drawable.p7,R.drawable.p8,R.drawable.p9};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//从资源文件main.xml中知道gallery,
Gallery gallery = (Gallery) findViewById(R.id.gallery);
//定义一个图片接口类,来实现图片在Gallery中的显示
ImageAdapter ia = new ImageAdapter(this);
gallery.setAdapter(ia);
}
//ImageAdapter图片接口类 继承与BaseAdapter
public class ImageAdapter extends BaseAdapter{
private Context mCtx;
//构造函数
public ImageAdapter(Context con){
//上下文
/* 构建一 Integer array 并取得预加载 Drawable 的图片 id */
this.mCtx = con;
}
@Override //getCount函数,用于返回图片的张数
public int getCount() {
// TODO Auto-generated method stub
return resId.length;
}
@Override //getItem函数,用于返回图片的位置
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override //最主要的函数 返回一个ImageView的对象
public View getView(int position, View v, ViewGroup parent) {
// TODO Auto-generated method stub
//新建一个ImageView
ImageView iv = new ImageView(mCtx);
//设置图片对象给ImageView
iv.setImageResource(resId[position]);
//重置图片的宽高
iv.setScaleType(ImageView.ScaleType.FIT_XY);
//重新设置Layout的宽高
iv.setLayoutParams(new Gallery.LayoutParams(100,100));
//设置Gallery的背景图
iv.setBackgroundColor(0xFFFFFFFF);
//返回
return iv;
}
}
}
5、运行效果
6、就这样结束了?不,当然不,下一步我们将添加一个新的控件 ImageSwitcher,实现在你点击其中某个图片的时候,在上面空白区域显示该图片,下一讲,咱继续。源代码下载