This is a simple example showing A sliding Gallery in android. This example shows a sliding gallery with a paging Control and a changing page text which also indicate the page change.
Create a new project named “SlidingGallery” and copy this code into “SlidingGalleryDemo.java“.
My Activity name is “SlidingGalleryDemo.java” here.
package com.coderzheaven.pack; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Gravity; 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.LinearLayout; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; public class SlidingGalleryDemo extends Activity { Gallery ga; int width, height; LinearLayout linear; LinearLayout layout; Integer[] pics = { R.drawable.android_1, R.drawable.android_2, R.drawable.android_3, R.drawable.android_4, R.drawable.android_5 }; ImageView paging; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.threemenu); layout = (LinearLayout) findViewById(R.id.imageLayout1); DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); width = displaymetrics.heightPixels; height = displaymetrics.widthPixels; for(int i=0; i<pics.length; i++) { paging = new ImageView(this); paging.setId(i); paging.setBackgroundResource(R.drawable.unsel); layout.addView(paging); } ga = (Gallery)findViewById(R.id.thisgallery); ga.setAdapter(new ImageAdapter(this)); ga.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { System.out.println("SELECTED : " + arg2); } }); } public class ImageAdapter extends BaseAdapter { private Context ctx; int imageBackground; int pre=-1; public ImageAdapter(Context c) { ctx = c; } public int getCount() { return pics.length; } public View getView(int arg0, View convertView, ViewGroup arg2) { ImageView iv; LinearLayout layoutnew = new LinearLayout(getApplicationContext()); layoutnew.setOrientation(LinearLayout.VERTICAL); if (convertView == null) { iv = new ImageView(ctx); iv.setImageResource(pics[arg0]); iv.setScaleType(ImageView.ScaleType.FIT_XY); int temp =(int) (height/1.7f); int temp_y = (int) ((3*temp)/2.0f); iv.setLayoutParams(new Gallery.LayoutParams(temp,temp_y)); iv.setBackgroundResource(imageBackground); } else { iv = (ImageView) convertView; } TextView tv = new TextView(ctx); tv.setText("Page " + (arg0+1)); tv.setTextColor(0xFFFFFFFF); tv.setPadding(0, 15, 0, 0); tv.setTextSize(18); tv.setGravity(Gravity.CENTER); layoutnew.addView(iv); layoutnew.addView(tv); return layoutnew; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { if(pre !=-1) { ImageView img = (ImageView) findViewById(pre); img.setBackgroundResource(R.drawable.unsel); } ImageView img1 = (ImageView) findViewById(position); img1.setBackgroundResource(R.drawable.sel); this.pre = position; return position; } } }
Now create a new class and name it “GalleryCustom.java” which extends “Gallery” and copy this code into it.
package com.coderzheaven.pack; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import android.widget.Gallery; public class GalleryCustom extends Gallery { public GalleryCustom(Context ctx, AttributeSet attrSet) { super(ctx,attrSet); } @SuppressWarnings("unused") private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) { return e2.getX() > e1.getX(); } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY){ return true; } }
Now we will create the layout for the page. Copy this code to the main.xml.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:keepScreenOn="true" android:background="@drawable/Hotpink"> <LinearLayout android:layout_width="fill_parent" android:id="@+id/imageLayout1" android:layout_marginBottom="5dip" android:layout_alignParentBottom="true" android:gravity="center_horizontal|center_vertical" android:orientation="horizontal" android:layout_height="wrap_content"> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:id="@+id/imageLayout" android:gravity="center" android:layout_alignParentTop="true" android:layout_above="@+id/imageLayout" android:layout_height="fill_parent" > <com.coderzheaven.pack.GalleryCustom android:id="@+id/thisgallery" android:spacing="60dip" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> </RelativeLayout>
OK Its done. Now run the project and see the result.
Please comment and share this post if you like it.
how can i get the images of this program
That means the images which are in drawable folder of this project
Please help me how to convert the above code to change images automatically with in a time period. I am a beginner of android.
thank you
Gallery is now depricated.how can i your code for Android 4.2?
tanks,
amin
Hi kindly remake the code. Gallery is now deprecated in 4.2..