Sunday, July 15, 2012

Creating ImageSwitcher in Android



Click here To download Source Code

Package Name   :  selva.image

Project Name     :  ImageSwitcher

Version              :  1.5 ( Supports 1.5 and above versions) 


main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ff000000" >
    <Gallery
    android:id="@+id/gallery1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />
    <ImageSwitcher
    android:id="@+id/switcher1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true" />
</RelativeLayout>


 note : res --> values --> img.xml

img.xml 

<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="Gallery1">
<attr name="android:galleryItemBackground" />
</declare-styleable>
</resources>



 ImageSwitcherActivity.java


package selva.image;

import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.BaseAdapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Gallery;
import android.widget.ViewSwitcher.ViewFactory;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
public class ImageSwitcherActivity extends Activity implements ViewFactory {
//---the images to display---
Integer[] imageIDs = {
        R.drawable.image1,
        R.drawable.image2,
        R.drawable.image3,
        R.drawable.image4,
        R.drawable.image5,
        R.drawable.image6
};
private ImageSwitcher imageSwitcher;
/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            imageSwitcher = (ImageSwitcher) findViewById(R.id.switcher1);
            imageSwitcher.setFactory(this);
            imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_in));
            imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
            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)
                    {
                        imageSwitcher.setImageResource(imageIDs[position]);

                    }
            });
        }
    public View makeView()
    {
        ImageView imageView = new ImageView(this);
        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
        imageView.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
        return imageView;
    }
    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;
            }
            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;
            }
    }
}


OUTPUT: 


horizontal scroll and click on image






























Click here To download Source Code


2 comments:

  1. if i wanna the switcher always on top of the showed image, how?

    ReplyDelete
  2. I want code to click on image button and play audio

    ReplyDelete