首先是layout file:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Gallery android:id="@+id/gallery" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> |
接下来是代码,首先是需要定义一个BaseAdaper的子类来操作控制图片资源,然后在主类中通过Gallery.setAdapter(new ImageAdapter(this));来使用这个控制类。
package com.zx.galery;
import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener;
public class GalleryTest extends Activity { private Gallery mGallery; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mGallery = (Gallery)findViewById(R.id.gallery); mGallery.setAdapter(new ImageAdapter(this)); mGallery.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { Toast.makeText(GalleryTest.this, "" + position, Toast.LENGTH_SHORT).show(); } }); } /* * class ImageAdapter is used to control gallery source and operation. */ private class ImageAdapter extends BaseAdapter{ private Context mContext; private Integer[] mImage = { R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7 }; public ImageAdapter(Context c){ mContext = c; } @Override public int getCount() { // TODO Auto-generated method stub
return mImage.length; }
@Override 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 public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub
ImageView i = new ImageView (mContext); i.setImageResource(mImage[position]); i.setScaleType(ImageView.ScaleType.FIT_XY); i.setLayoutParams(new Gallery.LayoutParams(136, 88)); return i; } }; } |
以上只是一个很简单的例子,下一步就是要将Gallery与ImageSwitcher结合起来做一个电子相册。