Belajar android lagi yuk, kali ini kita akan belajar tentang Image Switcher. Image Switcher ini mampunyai fungsi spesial seperti namanya yaitu untuk memudahkankan kita menampilkan kumpulan gambar satu persatu. Image Switcher ini dapat kita manfaatkan misalnya untuk membangun aplikasi mengenal buah.
Jadi langkah awal yang harus kita lakukan adalah menyiapkan gambar buah yang akan digunakan di aplikasi.
Oke sekarang mari kita mulai.
1. Buat ProjectBaru seperti dibawah ini.
2. Buat directory drawable lalu letakan file-file buah yang telah kita kumpulkan didirektory tersebut.
3. Sekarang mari kita kebagian layout edit main_activity.xml
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ImageSwitcher
android:id="@+id/imageSwitcher1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" >
</ImageSwitcher>
<Button
android:id="@+id/buttonPrev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="Prev" />
<Button
android:id="@+id/buttonNext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/buttonPrev"
android:layout_alignBottom="@+id/buttonPrev"
android:layout_alignParentRight="true"
android:text="Next" />
</RelativeLayout>
Pada xml diatas terlihat kita menggunakan sebuah ImageSwitcher yang akan kita gunakan untuk menampilkan gambar dan dua buah button Prev dan Next untuk navigasi penampilan image.
4. Sekarang mari kita buat otak dari aplikasi yakni MainActivity.java
package com.batikmob.learnfruits;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;
public class MainActivity extends Activity {
private ImageSwitcher imageSwitcher;
Button btnNext, btnPrev;
// Array of Image arrImage to Show In ImageSwitcher
int arrImage[] = { R.drawable.apple, R.drawable.avocado, R.drawable.durian,
R.drawable.fruitstar, R.drawable.kiwi, R.drawable.papaya };
int messageCount = arrImage.length;
// to keep current Index of arrImage array
int currentIndex = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initUI();
nextImage();
}
private void initUI() {
// get The references
btnNext = (Button) findViewById(R.id.buttonNext);
btnPrev = (Button) findViewById(R.id.buttonPrev);
imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher1);
// Set the ViewFactory of the ImageSwitcher that will create ImageView
// object when asked
imageSwitcher.setFactory(new ViewFactory() {
public View makeView() {
// TODO Auto-generated method stub
// Create a new ImageView set it's properties
ImageView imageView = new ImageView(getApplicationContext());
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
return imageView;
}
});
// Declare the animations and initialize them
Animation in = AnimationUtils.loadAnimation(this,
android.R.anim.slide_in_left);
Animation out = AnimationUtils.loadAnimation(this,
android.R.anim.slide_out_right);
// set the animation type to imageSwitcher
imageSwitcher.setInAnimation(in);
imageSwitcher.setOutAnimation(out);
btnNext.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
nextImage();
}
});
btnPrev.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
prevImage();
}
});
}
private void nextImage() {
currentIndex++;
// If index reaches maximum reset it
if (currentIndex == messageCount)
currentIndex = 0;
imageSwitcher.setImageResource(arrImage[currentIndex]);
}
private void prevImage() {
currentIndex--;
// If index reaches 0 we set to maximum
if (currentIndex == -1)
currentIndex = messageCount - 1;
imageSwitcher.setImageResource(arrImage[currentIndex]);
}
}
5. Sekarang mari kita jalankan projectnya
– Sentuh button Next maka akan menampilkan gambar berikutnya
– Sentuh button Prev maka akan menampilkan gambar sebelumnya.
Tahun 2013 akan segera berakhir mari perkuat semangat untuk menyelesaikan target-target yang belum tercapai.




Mas agus sungguh menarik sekali imageswitcher nya,
tapi misalnya saya ingin memberi angka pada setiap image nya,
mas agus bisa membantu saya?
@Muhammad, coba pelajari android layout properti weight
terimakasih mas atas sarannya, maaf ni barang kali mas bisa membantu saya, klo misalnya dalam tutorial imageswitcher ini, saya ingin menambahkan Button dalam gambar yang terakhir
untuk berpindah ke class yang lain bagaimana mas?
Mas agus, bagaimana jika setiap gambarnya diambil dari link website atau internet mas ?
kalau mau menampilkan tulisan di bawah gambar bagaimana pak ?
pak,, kalau ukuran gambar itu berapa pixels..??
soal ya saya coba gambarnya ngak bisa tampil…
apa itu gambar itu terpengaruh sama ukuran…??
mas agus,
ini kan image swither yg fotonya di folder drawable, kalau fotonya di blogspot atau flickr gmana? jadi download dl dari internet, apa bisa dterapkan.
tolong share koding nya mas agus
thanx
makasih banyak pak atas tutorialnya. tapi saya mau nanya, bagaimana jika saya mau menambahkan text di setiap gambarnya?
tolong pencerahannya pak 🙂