Monday, 27 July 2015

Android Gallery View

Gallery View display items in a central locked horizontal scrolling list. The items of a Gallery are from adapter same as we do with listview and gridview.
Example:
1. Create a new project.
2. Edit MainActivity.java



package skk.pak.gallery;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

       ImageView selectedImage;
       TextView tv_name;
       TextView tv_description;
       static Integer[] mImageIds = { R.drawable.muhammad_ali_jinnah,
                     R.drawable.khawaja_nazimuddin, R.drawable.malik_ghulam_muhammad,
                     R.drawable.iskander_mirza, R.drawable.muhammad_ayub_khan,
                     R.drawable.yahya_khan, R.drawable.zulfikar_ali_bhutto,
                     R.drawable.fazal_ilahi_chaudri, R.drawable.muhammad_zia_ul_haq,
                     R.drawable.ghulam_ishaq_khan, R.drawable.wasim_sajjad,
                     R.drawable.farooq_leghari, R.drawable.muhammad_rafiq_tarard,
                     R.drawable.pervez_musharraf, R.drawable.somro,
                     R.drawable.asif_ali_zardari, R.drawable.mamnun_husain };

       private String leadersNames[] = { "Muhammad Ali Jinnah (1876–1948)",
                     "Sir Khawaja Nazimuddin (1894–1964)",
                     "Malik Ghulam Muhammad (1895–1956)",
                     "Major-General Iskander Mirza (1899–1969)",
                     "Field Marshal Ayub Khan (1907–1974)",
                     "General Yahya Khan (1907–1974)",
                     "Zulfikar Ali Bhutto (1928–1979)",
                     "Fazal Ilahi Chaudhry(1904–1982)",
                     "General Muhammad Zia-ul-Haq (1924–1988)",
                     "Ghulam Ishaq Khan (1915–2006)", "Wasim Sajjad (1941–)",
                     "Farooq Leghari (1940–2010)", "Muhammad Rafiq Tarar (1929–)",
                     "General Pervez Musharraf (1943–)", "Muhammad Mian Soomro (1950–)",
                     "Asif Ali Zardari (1955–)", "Mamnoon Hussain(1940–)" };
       private String descript[] = { "Muhammad Ali Jinnah (1876–1948)",
                     "Sir Khawaja Nazimuddin (1894–1964)",
                     "Malik Ghulam Muhammad (1895–1956)",
                     "Major-General Iskander Mirza (1899–1969)",
                     "Field Marshal Ayub Khan (1907–1974)",
                     "General Yahya Khan (1907–1974)",
                     "Zulfikar Ali Bhutto (1928–1979)",
                     "Fazal Ilahi Chaudhry(1904–1982)",
                     "General Muhammad Zia-ul-Haq (1924–1988)",
                     "Ghulam Ishaq Khan (1915–2006)", "Wasim Sajjad (1941–)",
                     "Farooq Leghari (1940–2010)", "Muhammad Rafiq Tarar (1929–)",
                     "General Pervez Musharraf (1943–)", "Muhammad Mian Soomro (1950–)",
                     "Asif Ali Zardari (1955–)", "Mamnoon Hussain(1940–)" };

       @Override
       public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);

              Gallery gallery = (Gallery) findViewById(R.id.gallery1);
              selectedImage = (ImageView) findViewById(R.id.image1);
              tv_name = (TextView) findViewById(R.id.tv_name_date);
              tv_description = (TextView) findViewById(R.id.tv_discription);
              gallery.setSpacing(2);
              gallery.setAdapter(new GalleryImageAdapter(this));
              selectedImage.setImageResource(mImageIds[0]);
              tv_name.setText(leadersNames[0]);
              tv_description.setText(descript[0]);
              // clicklistener for Gallery
              gallery.setOnItemClickListener(new OnItemClickListener() {
                     public void onItemClick(AdapterView<?> parent, View v,
                                  int position, long id) {
                        
                           // show the selected Image
                            selectedImage.setImageResource(mImageIds[position]);
                           tv_name.setText(leadersNames[position]);
                           tv_description.setText(descript[position]);
                     }
              });
             
       }

}                 
 

2. Edit activity_main.xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#004c00"
    android:orientation="vertical"
    tools:context="{relativePackage}.${activityClass}" >

    <Gallery
        android:id="@+id/gallery1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/image1"
                android:layout_width="wrap_content"
                android:layout_height="150dp"
                android:layout_weight="1"
                android:paddingBottom="5dp"
                android:paddingRight="10dp"
                android:paddingTop="5dp"
                android:layout_gravity="left"
                android:src="@drawable/muhammad_ali_jinnah" />

            <TextView
                android:id="@+id/tv_name_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:padding="5dp"
                android:textColor="#FFf"
                android:text="Medium Text"
                android:textAppearance="?android:attr/textAppearanceMedium" />
        </LinearLayout>
    </LinearLayout>

    <TextView
        android:id="@+id/tv_discription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:textColor="#fff"
        android:scrollbars="vertical"
        android:text="TextView" />

</LinearLayout>


 3. Create class GalleryImageAdapter.java


package skk.pak.gallery;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

public class GalleryImageAdapter extends BaseAdapter {
       private Context mContext;

       public GalleryImageAdapter(Context context) {
              mContext = context;
       }

       public int getCount() {
              return MainActivity.mImageIds.length;
       }

       public Object getItem(int position) {
              return position;
       }

       public long getItemId(int position) {
              return position;
       }

       // Override this method according to your need
       public View getView(int index, View view, ViewGroup viewGroup) {
              // TODO Auto-generated method stub
              ImageView i = new ImageView(mContext);

              i.setImageResource(MainActivity.mImageIds[index]);
              i.setLayoutParams(new Gallery.LayoutParams(200, 200));

              i.setScaleType(ImageView.ScaleType.FIT_XY);

              return i;
       }
}




 4. Run the Application:

Screen Shots:)

--->Thanks for reading<---