app gallery in android

October 4, 2012 | Rishabh Agrawal | General

This code  displays  thumbnail images below a image view. Once click on these thumbnail images, the actual image will be displayed in the image view above.

I have used  ImageAdapter class that  extends BaseAdapter which sets the images in the gallery below and its corresponding preview in the image view ,according to the array passed to it.

You will also need to declare-styleable in the attributes.xml of res folder.This is used bt ImageAdapater class.

A screenshot is also provided for your refrence.

 

public class GalleryView extends Activity {

//array of background images that appear in the gallery

Integer[] pics = {

R.drawable.image01,

R.drawable.image02,

R.drawable.image03,

R.drawable.image04

};

ImageView imageView;

private Context ctx;

 

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.gallery);//set layout

// Gallery  view  shows items in a center-locked, horizontally scrolling list.

Gallery ga = (Gallery)findViewById(R.id.Gallery01);

ga.setAdapter(new ImageAdapter(this));//setting adapter for adding many images

imageView = (ImageView)findViewById(R.id.ImageView01);//fetching image view by id

//when clicking on gallery thumbnail the image is displayed in the image view above

ga.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,

long arg3) {

imageView.setImageResource(pics[arg2]);//setting image from array passed

}

});

}

 

public class ImageAdapter extends BaseAdapter {

 

int imageBackground;

public ImageAdapter(Context c) {

ctx = c;

//TypedArray stores styled attributes

TypedArray ta = obtainStyledAttributes(R.styleable.Gallery1);

// Retrieve the resource identifier for the attribute at index

imageBackground = a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 1);

//Give back a previously retrieved StyledAttributes, for later re-use.

ta.recycle();

}

 

public int getCount() {

return pics.length;//no. of pics in gallery

}

 

public Object getItem(int arg0) {

return arg0;

}

 

public long getItemId(int arg0) {

return arg0;

}

 

@Override

//Get a View that displays the data at the specified position in the data set

public View getView(int arg0, View arg1, ViewGroup arg2) {

ImageView iv = new ImageView(ctx);

iv.setImageResource(pics[arg0]);//setting image thumbnail

// Controls how the image should be resized or moved to match the size of this ImageView.

iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE);

// Set the layout parameters associated with this view

iv.setLayoutParams(new Gallery.LayoutParams(150,120));

// Set the background to a given resource

iv.setBackgroundResource(imageBackground);

return iv;

}

 

}

}

 

 

 

Attributes.xml in res folder

 

<?xml version=“1.0” encoding=“utf-8”?>

 

<resources>

<declare-styleable name=“Gallery1”>

<attr name=“android:galleryItemBackground”/>

</declare-styleable>

</resources>

 

gallery.xml in layout folder

 

<?xml version=“1.0” encoding=“utf-8”?>

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”

android:orientation=“vertical” >

 

<ImageView

android:id=“@+id/ImageView01”

android:layout_width=“fill_parent”

android:layout_height=“2px”

android:layout_margin=“10dip”

android:layout_weight=“1”

android:scaleType=“centerInside” >

</ImageView>

 

<Gallery

android:id=“@+id/Gallery01”

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”

android:scaleType=“centerInside” >

</Gallery>

 

</LinearLayout>

 

 

Screenshot :

App gallery screenshot

THE AUTHORRishabh Agrawal

Rishabh Agrawal is the founder of Creatiosoft, a company focused on creating high-quality software for the iGaming industry, specialising in poker and card games. With years of experience, Rishabh is dedicated to delivering engaging and user-friendly gaming experiences. Through this blog, he shares his passion and insights to help readers understand the latest trends and advancements in iGaming.

Recent Posts

The Future of Mobile Gaming: What to Expect in the Next 5 Years

Over the years, mobile gaming has seen amazing development and innovation utilized by the game development company in India. It…
06 Jun 2023 Rishabh Agrawal

How Do I Get Started With NFT Gaming?

The popularity of the NFT game has created a different fan base. There was a time when games were a…
18 Jul 2022 Rishabh Agrawal

What Are The Top Trends in NFT Marketplace 2022?

The NFTs are the new engaging and revolutionary technology across the globe. Though, these non-fungible tokens appeared for the first…
09 Jun 2022 Rishabh Agrawal