Oke, pada dasarnya grid layout memang dioptimalkan untuk memberikan desain user interface yang lebih baik dengan membagi suatu bagian besar, ke dalam kotak-kotak bagian yang lebih kecil. Sehingga gallery gambar yang menggunakan GridView akan lebih tampil menarik dibandingkan dengan yang menggunakan gallery layout biasa. Nanti tampilan awal gallery kita akan menampilkan banyak thumbnails, ketika thumbnail tersebut diklik, maka akan ditampilkan gambar tunggalnya dengan ukuran yang lebih besar.
Untuk memulai membuat gallery menggunakan
GridView, pertama-tama kalian membutuhkan 7 buah gambar. Gambarnya terserah, disiapkan saja dulu

Kalau sudah, buat
project baru di Android. Nama
project dan nama
package-nya terserah. Kemudian, masukkan ketujuh gambar yang sudah disiapkan tadi ke folder /res/drawable dan beri nama
sample_0, sample_1, sample_2 dan seterusnya seperti di bawah ini :
Android Grid Layout
Setelah itu, buat kelas baru bernama ImageAdapter.java, kelas inilah yang berfungsi sebagai adapter gambar-gambar yang akan ditampilkan di gallery. Copy pastekan kode berikut ini pada ImageAdapter.java :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
package ganti.dengan.nama.packagemu;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c)
{
mContext = c;
}
public static Integer[] mThumbIds =
{
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7,
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_3,
R.drawable.sample_4, R.drawable.sample_5,
R.drawable.sample_6, R.drawable.sample_7
};
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
}
|
Kelas ImageAdapter merupakan warisan dari kelas BaseAdapter dan mempunyai beberapa method bawaan, seperti getView(), getCount() dan sebagainya seperti di atas.
Selanjutnya, kita akan membuat sebuah layout GridView yang bernama activity_main.xml. Dan kopi pastekan kode di bawah ini :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
<?xml version="1.0" encoding="utf-8"?>
android:id="@+id/layout_followed_top"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1"
android:orientation="vertical"
>
<GridView
android:id="@+id/gridview_followed"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
>
</GridView>
</LinearLayout>
|
Bisa dilihat, ada banyak properti pada GridView, seperti numColums, gravity dan sebagainya. Untuk numColums diset ke auto fit yang berarti banyaknya kolom akan menyesuaikan dengan lebar layar yang ada.
Jika sudah, kita buka MainActivity.java atau activity utama. Dan copy pastekan kode berikut pada file MainActivity.java :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package ganti.dengan.nama.packagemu;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnItemClickListener, OnClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridView = (GridView) findViewById(R.id.gridview_followed);
gridView.setAdapter(new ImageAdapter (this));
gridView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(MainActivity.this, "Klik di"+position, Toast.LENGTH_SHORT).show();
Intent i = new Intent(this, SingleImage.class);
Bundle b = new Bundle();
b.putInt("posisi", position);
i.putExtras(b);
startActivity(i);
}
@Override
public void onClick(View v) {
}
}
|
Pada dasarnya kelas MainActivity berfungsi untuk menampilkan GridView gallery. Kelas ini juga mempunyai method onItemClick() yang berguna untuk menampilkan gambar tunggal ketika sebuah thumbnails diklik.
Setelah itu, kita buat file activity SingleImage.java yang berfungsi untuk menampilkan gambar tunggal dari gallery. Namun sebelumnya kita buat layoutnya dulu. Buat file baru bernama singleimage.xml dan kopi pastekan kode berikut :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/singleimage"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:contentDescription="gambar tunggal"
android:layout_gravity="center_horizontal|center_vertical"
android:layout_weight="1"
/>
</LinearLayout>
|
Layout singleimage.xml berisi ImageView yang berguna untuk menampilkan single image. Jika sudah kita kembali ke activity SingleImage.java dan copy pastekan kode berikut :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
package ganti.dengan.nama.packagemu
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
public class SingleImage extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.singleimage);
int imId = this.getIntent().getExtras().getInt("posisi");
ImageView iv = (ImageView) findViewById(R.id.singleimage);
int image = ImageAdapter.mThumbIds[imId];
iv.setImageResource(image);
}
}
|
Gambar yang ditampilkan pada SingleImage.java diambil dari kelas ImageAdaptermenggunakan referensi image id yang didapat dari GridView pada MainActivity.java.
Kemudian yang terakhir, kita buka AndroidManifest.xml untuk mendaftarkan activity-activity yang sudah kita buat. Copy pastekan kode di bawah ini pada AndroidManifest.xml:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package="id.sg.apollo.sg"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar"
>
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SingleImage"
android:label="@string/app_name"
>
</activity>
</application>
</manifest>
|
That’s all.
Demo
Ketika aplikasi tersebut dijalankan, inilah screenshot dari aplikasi :
Nah.. setelah admin copas dari web pak http://www.twoh.co
semoga para pembaca punya referensi nih buat kembangin atau buat aplikasi basis android.
Mimin kebetulan juga lagi oprek android nih,
terima kasih udah mampir di blog ane.
Sumber artikel dari :
http://www.twoh.co/2013/04/tutorial-android-membuat-image-gallery-galeri-gambar-menggunakan-gridview/