Thursday, October 11, 2012

Browse Image Galery Android


Hai... Hai... Buat kalian yang berkutat di android developmen pasti ingin melakukan ini, yaitu browse image dari galery. Misalkan kita ingin memasukkan image ke dalam project dari galery dapat menggunakan fungsi ini. Gampang aja kok, cuman pake Intent aja. Intent?? Apa ituu?? Intent itu suatu fungsi yang digunakan untuk menjalankan aplikasi atau activity lain pada project kita.

Banyak pengembangan dari suatu fungsi Intent ini di android, kalau bisa main" di Intent ini keren dah jadinya. hehe,,, Okeh langsung aja, aq ga ngasi coding atau gambar untuk XMLnya, terserah mw dibuat seperti apa, yang penting ad BUTTON "Open Galery" dan juga widget ImageView untuk menampilkan Gambar yang dipilih, dimana jika button itu ditekan akan menjalankan fungsi membuka galery kemudian ditampilkan pada ImageView. Ok kalo sudah, anggap aja ID buttonnya butBukaGb dan ImageViewnya imgv1, jadi coding javanya seperti ini :

Button butBukaGb = (Button)findViewById(R.id.Button01);
        butBukaGb.setOnClickListener(new OnClickListener() {
           
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("image/*");
                startActivityForResult(Intent.createChooser(intent, "Select Pincture"), 1);
            }
        });

Nah itu cara simple dalam pemakaian Intent. Deklarasikan Intentnya, dan di akhir jalankan intent dengan menggunakan startActivityForResult(); Untuk output dari suatu Intent akan di proses seperti apa, kita perlu membuat fungsi onActivityResult() seperti code dibawah ini :

public void onActivityResult(int requestCode, int resultCode, Intent data){
        if (resultCode == RESULT_OK){
            if (requestCode == 1){
                Uri selectImageUri = data.getData();
                urlGambar = getPath(selectImageUri);
                Bitmap bmp = BitmapFactory.decodeFile(urlGambar);
                setContentView(R.layout.main);
                ImageView Gambar=(ImageView)findViewById(R.id.imageView1);
                Gambar.setImageBitmap(bmp);
            }
        }
    }

Nah pada ActivityResult diatas, hasil dari sebuah Intent itu akan disimpan di variabel bertype Uri, dari Uri tersebut kita bisa olah sehingga menghasilkan gambar yang dipilih. Kebetulan dsini pengolahannya dengan cara mengambil URL dari gambar tersebut, kemudian disimpan pada variabel Bitmap setelah itu baru ditampilkan di ImageView.

Untuk mengambil URL gambarnya, perlu beberapa langkah yang dijalankan dpada fungsi getPath(). Fungsi ini melakukan parsing variabel bertype Uri dimana merupakan output dari Intent. Untuk coding fungsi getPath() lebih lengkapnya sebagai berikut :

public String getPath(Uri uri){
        String[] projection = { MediaStore.Images.Media.DATA };
        Cursor cursor = managedQuery(uri, projection, null, null, null);
        int colum = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(colum);
    }

Nah begitulah alur dari pengambilan gambar melalui Image Galery hingga menampilkan gambar itu sendiri. Dari code diatas, masih bisa di eksplore sesuai kebutuhan seperti ingin menampilkan URL gambar tersebut atau lain lain. Dicoba coba saja jika ingin menambahkan atau mengurangi bagian yang ada sesuai kebutuhan, yang jelas code ini sudah cukup simple untuk diterapkan.

Untuk hasil silahkan dicoba sendiri yaa, males nok isi printscreen gtu, hehehe... #gagNiatBangetBikinBlog
SELAMAT MENCOBA KAUAND :D

0 comments:

Post a Comment