Kamis, 21 Mei 2015

Android Rounded ImageView

Halooo ,
Kali ini saya akan membagikan cara merubah gambar yang di set di ImageView menjadi bulat. Silahkan di baca dan di pelajari coding nya. Jika ada yang di tanyakan, silahkan tinggalkan komentar kalian di bawah.



Masukan kode berikut di MainActivity.java :
package com.kreativdeveloper.roundedimage;
/**
 * @author yudirahmat
 * @email yudirahmat7@gmail.com
 * @wordpress kreativdeveloper.wordpress.com
 */
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Path;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {
 Button mTake;
 ImageView mImage;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 mTake = (Button) findViewById(R.id.btnTake);
 mImage = (ImageView) findViewById(R.id.img_foto);
 
 mTake.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v) { 
 Intent intent = new Intent();
 intent.setType("image/*");
 intent.setAction(Intent.ACTION_GET_CONTENT);
 startActivityForResult(Intent.createChooser(intent,"Select Picture"), 2);
 
 }
 });
 }
 
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 super.onActivityResult(requestCode, resultCode, data);
 
 if (resultCode == RESULT_OK) {
 if(requestCode == 1) {
 Bundle extras = data.getExtras();
 Bitmap bitMap = (Bitmap) extras.get("datamImage.setImageBitmap(bitMap);
 } else if(requestCode == 2) {
 Uri selectedImageUri = data.getData();
 String selectedImagePath = getGalleryPath(selectedImageUri);
 Bitmap mBitmap = GetBitmapClippedCircle(selectedImagePath);
 mImage.setImageBitmap(mBitmap);
 }
 }
 
 
 }
 
 public String getGalleryPath(Uri uri) {
 String[] projection = { MediaStore.Images.Media.DATA };
 @SuppressWarnings("deprecation")
 Cursor cursor = managedQuery(uri, projection, null, null, null);
 int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
 cursor.moveToFirst();
 return cursor.getString(column_index);
 }

 @SuppressLint("SdCardPath")
 private static Bitmap GetBitmapClippedCircle(String filepath) {
// String filepath = "/sdcard/yudi.jpg";
 File imagefile = new File(filepath);
 FileInputStream fis = null;
 try {
 fis = new FileInputStream(imagefile);
 } catch (FileNotFoundException e) {
 e.printStackTrace();
 }

 Bitmap bitmap = BitmapFactory.decodeStream(fis);
 
 final int width = bitmap.getWidth();
 final int height = bitmap.getHeight();
 final Bitmap outputBitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);

 final Path path = new Path();
 path.addCircle((float)(width / 2), (float)(height / 2), (float) Math.min(width, (height / 2)), Path.Direction.CCW);
 
 final Canvas canvas = new Canvas(outputBitmap);
 canvas.clipPath(path);
 canvas.drawBitmap(bitmap, 0, 0, null);
 return outputBitmap;
 }
}
Sekarang masukan kode berikut di activity_main.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:background="#f0f0f0" >

 <LinearLayout
 android:id="@+id/layout_header"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:background="#31b6e7"
 android:orientation="vertical" >

 <ImageView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center"
 android:contentDescription="@string/app_name"
 android:src="@drawable/ic_logo" />
 </LinearLayout>

 <LinearLayout
 android:id="@+id/layout_content"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_below="@+id/layout_header"
 android:orientation="vertical"
 android:padding="15dp" >

 <Button
 android:id="@+id/btnTake"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:gravity="center"
 android:padding="10dp"
 android:text="Silahkan Pilih Foto" />

 <ImageView
 android:id="@+id/img_foto"
 android:layout_width="150dp"
 android:layout_height="150dp"
 android:layout_gravity="center"
 android:layout_marginTop="15dp"
 android:contentDescription="@string/app_name"
 android:scaleType="centerCrop" />
 </LinearLayout>

 <TextView
 android:id="@+id/textview1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_alignParentBottom="true"
 android:layout_centerHorizontal="true"
 android:background="#31b6e7"
 android:gravity="center"
 android:padding="10dp"
 android:text="Kreativdeveloper.wordpress.com"
 android:textColor="#ffffff"
 android:textSize="12sp" />

</RelativeLayout>

Untuk full source code nya kalian bisa download disini
Sekian dari tutorial nya. Semoga bermanfaat  :) :D
jangan lupa tinggalkan komentar kalian disini  :D

Tidak ada komentar:

Posting Komentar