首先是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结合起来做一个电子相册。