Cara Membuat Gallery Gambar Dengan ImageView Di Android

Home » , , » Cara Membuat Gallery Gambar Dengan ImageView Di Android
Selamat siang sobat, kemaren kita sidah belajar bagaimana Cara Membuat Gallery Gambar Dengan GridView Di Android, nah sekarang ada bedanya sedikit yaitu kita buat sebuah gallery sederhana di android menggunakan ImageView dan di lengkapi dengan suara. Untuk lebih jelaskan langsung saja kita mulai langkah demi langkahnya :

Gallery Gambar Dengan ImageView Di Android

Seperti biasa untuk membuat sebuag aplikasi petama kita buat project baru di eclipse (File –> New –> Project –> Android Application Project) dengan nama terserah anda
Kemudian  siapkan dulu gambar yang akan kita jadikan gallery kemudian  copy dan paste gambar yang sudah kita siapkan tadi di folder res –> drawable-mdpi . 

Kemudian ketikkan source code di layout "main.xml" seperti di bawah ini:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Gallery
android:id="@+id/gallery1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginBottom="7dp"
    android:layout_marginLeft="7dp"
    android:layout_marginRight="7dp"
    android:scaleType="fitXY" />

</LinearLayout>

Kemudian buat class baru pada package dengan nama "DBAdapter.java" dan ketikkan source code seperti di bawah ini:

package com.gallerygambar;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBAdapter {
static final String KEY_ROWID = "_id";
static final String KEY_NAMA = "nama";
static final String KEY_GAMBAR = "gambar";
static final String TAG = "DBAdapter";

static final String DB_NAME = "db_buah";
static final String TBL_NAME = "tbl_gambar";
static final int DB_VERSION = 1;

static final String DB_CREATE =
"create table tbl_gambar (_id integer primary key autoincrement," +
"nama text not null, gambar blob not null);";
final Context context;

DatabaseHelper DBHelper;
SQLiteDatabase db;

public DBAdapter(Context ctx)
{
this.context = ctx;
DBHelper = new DatabaseHelper(context);
}

private static class DatabaseHelper extends SQLiteOpenHelper
{

public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
try{
db.execSQL(DB_CREATE);
loadData(db);
}catch (SQLException e) {
e.printStackTrace();
}

}

private void loadData(SQLiteDatabase db) {
inserData("Aulia", R.drawable.aulia, db);
inserData("Auli1", R.drawable.aulia1, db);
inserData("Auli2", R.drawable.aulia2, db);
inserData("Auli3", R.drawable.aulia3, db);
inserData("Auli4", R.drawable.aulia4, db);
inserData("Auli5", R.drawable.aulia5, db);
inserData("Auli6", R.drawable.aulia6, db);
inserData("Auli7", R.drawable.aulia7, db);
inserData("Auli8", R.drawable.aulia8, db);
inserData("Auli9", R.drawable.aulia9, db);
inserData("Auli10", R.drawable.aulia10, db);
inserData("Auli11", R.drawable.aulia11, db);
inserData("Auli12", R.drawable.aulia12, db);
inserData("Aulia13", R.drawable.aulia13, db);
inserData("Aulia14", R.drawable.aulia14, db);
inserData("Aulia15", R.drawable.aulia15, db);
inserData("Aulia16", R.drawable.aulia16, db);
inserData("Aulia17", R.drawable.aulia17, db);
inserData("Aulia18", R.drawable.aulia18, db);
inserData("Aulia19", R.drawable.aulia19, db);
inserData("Aulia20", R.drawable.aulia20, db);
inserData("Aulia21", R.drawable.aulia21, db);
inserData("Aulia22", R.drawable.aulia22, db);
inserData("Aulia23", R.drawable.aulia23, db);

}

private void inserData(String buah, int img, SQLiteDatabase db) {
ContentValues values = new ContentValues();
values.put(KEY_NAMA, buah);
values.put(KEY_GAMBAR, img);
db.insert(TBL_NAME, null, values);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version "+ oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS contacts");
onCreate(db);
}
}

public DBAdapter open() throws SQLException{
db = DBHelper.getWritableDatabase();
return this;
}

public void close(){
DBHelper.close();
}

public Cursor getAllGambar(){
Cursor c = db.query(TBL_NAME, new String[] {KEY_ROWID, KEY_NAMA, KEY_GAMBAR},null,null,null,null,null);
return c;
}

}

Kemudian ketikkan source code pada "MainActivity.java"  seperti di bawah ini:

package com.gallerygambar;

import java.util.Locale;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.database.Cursor;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;
import android.speech.tts.TextToSpeech;

public class MainActivity extends Activity implements TextToSpeech.OnInitListener{

Integer[] imageIDS;
String[] nama;
Gallery gallery;
ImageView image;
DBAdapter DB;
Cursor cursor;
TextToSpeech tts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tts = new TextToSpeech(this, this);
DB=new DBAdapter(this);
DB.open();
cursor = DB.getAllGambar();
imageIDS = new Integer[cursor.getCount()];
nama = new String[cursor.getCount()];
for(int i=0; i<cursor.getCount(); i++){
cursor.moveToPosition(i);
imageIDS[i] = cursor.getInt(cursor.getColumnIndex("gambar"));
nama[i] = cursor.getString(cursor.getColumnIndex("nama"));
}
DB.close();
gallery = (Gallery) findViewById(R.id.gallery1);
image = (ImageView) findViewById(R.id.imageView1);
gallery.setAdapter(new ImageAdapter(this));
gallery.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
Toast.makeText(getBaseContext(), "Cewek " + nama[position] +"",
Toast.LENGTH_SHORT).show();
image.setImageResource(imageIDS[position]);
speak("Cewek" + nama[position]);
}
});
}

protected void speak(String str) {
tts.speak(str, TextToSpeech.QUEUE_FLUSH, null);
}

public class ImageAdapter extends BaseAdapter{

Context context;
int itemBackground;
public ImageAdapter(Context c){
context = c;
TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);
itemBackground = a.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0);
a.recycle();
}
@Override
public int getCount() {
return imageIDS.length;
}

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

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if(convertView == null){
imageView = new ImageView(context);
imageView.setImageResource(imageIDS[position]);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setLayoutParams(new Gallery.LayoutParams(150, 120));
}else {
imageView = (ImageView) convertView;
}
imageView.setBackgroundResource(itemBackground);

return imageView;
}

}

@Override
public void onInit(int status) {
if(status == TextToSpeech.SUCCESS){
int result= tts.setLanguage(Locale.US);
if(result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED){
Log.e("TTS", "This Language is not supported");
}else{
//speakOut();
}
}else{
Log.e("TTS", "Initialization Failed!");
}

}
}

Berikut ini adalah Screenshots dari  Gallery Gambar Dengan ImageView Di Android 



Selamat mencoba dan jika ada tutorial yang kurang jelas atau terjadi kesalahan silahkan tinggalkan komentar.  Semoga bisa bermanfaat!
.
Share this article :