Mega Code Archive

 
Categories / Android / UI
 

Using BaseAdapter

package app.test; import android.app.Activity; import android.os.Bundle; import android.content.Context; import android.content.res.TypedArray; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.ImageView; import android.widget.Toast; public class Test extends Activity {     //---the images to display---     Integer[] imageIDs = {             R.drawable.icon,             R.drawable.icon,             R.drawable.icon,             R.drawable.icon,             R.drawable.icon,             R.drawable.icon,             R.drawable.icon     };          /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);                  Gallery gallery = (Gallery) findViewById(R.id.gallery1);                  gallery.setAdapter(new ImageAdapter(this));                 gallery.setOnItemClickListener(new OnItemClickListener()          {             public void onItemClick(AdapterView<?> parent, View v, int position, long id)              {                                 Toast.makeText(getBaseContext(),                          "pic" + (position + 1) + " selected",                          Toast.LENGTH_SHORT).show();                 ImageView imageView = (ImageView) findViewById(R.id.image1);                                 imageView.setImageResource(imageIDs[position]);             }         });     }          public class ImageAdapter extends BaseAdapter      {         private Context context;         private int itemBackground;           public ImageAdapter(Context c)          {             context = c;             //---setting the style---             TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);             itemBackground = a.getResourceId(                 R.styleable.Gallery1_android_galleryItemBackground, 0);             a.recycle();                             }           //---returns the number of images---         public int getCount() {             return imageIDs.length;         }                   //---returns the ID of an item---          public Object getItem(int position) {             return position;         }                              //---returns the ID of an item---                  public long getItemId(int position) {             return position;         }            //---returns an ImageView view---         public View getView(int position, View convertView, ViewGroup parent) {             ImageView imageView = new ImageView(context);             imageView.setImageResource(imageIDs[position]);             imageView.setScaleType(ImageView.ScaleType.FIT_XY);             imageView.setLayoutParams(new Gallery.LayoutParams(150, 120));             imageView.setBackgroundResource(itemBackground);             return imageView;         }     }     } //main.xml <?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" >      <TextView        android:layout_width="fill_parent"      android:layout_height="wrap_content"      android:text="Images of San Francisco" />    <Gallery     android:id="@+id/gallery1"     android:layout_width="fill_parent"      android:layout_height="wrap_content" />           <ImageView     android:id="@+id/image1"     android:layout_width="320px"      android:layout_height="250px"     android:scaleType="fitXY" />      </LinearLayout>