Android "Working With Camera App"


Membuat aplikasi kamera di Android
Seperti biasa, membuat project android baru. Disini IDE nya saya menggunakan Eclipse ADT Bundle, dimana IDE Eclipse sudah id-bundling menjadi satu paket dengan SDK android terbaru beserta ADT-nya.


  

Coding Dari Aplikasi ini :

-Activity.xml-
    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" >

    <//Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="42dp"
        android:text="Set As Wallpaper" />

    <//Button
        android:id="@+id/btn_pilih"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="14dp"
        android:text="Ambil Gambar" />

    <//ImageView
        android:id="@+id/imageView1"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:src="@drawable/icon" />


-MainActivity.java-

package echa.cameraapp;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.WallpaperManager;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;


public class MainActivity extends Activity {

private Uri UrlGambar;
private ImageView SetImageView;

private static final int CAMERA = 1;
Uri imageUri = null;
//is FileInputStream;
private static final int FILE = 2;
String image_Currs = "";
int foto = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button home = (Button)findViewById(R.id.button1);


home.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
setwallpaper();
}
});


final String [] pilih = new String [] {"Camera", "SD Card"};
ArrayAdapter arr_adapter = new ArrayAdapter (this, android.R.layout.select_dialog_item,pilih);
AlertDialog.Builder builder = new AlertDialog.Builder(this);


builder.setTitle("Pilih Gambar");
builder.setAdapter( arr_adapter, new DialogInterface.OnClickListener()
{
public void onClick( DialogInterface dialog, int pilihan )
{
if (pilihan == 0)
{

String random = String.valueOf(System.currentTimeMillis());

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(),
"DCIM/Camera/img_" + random + ".jpg");

image_Currs = "img_" + random.toString() + ".jpg";

foto++;

UrlGambar = Uri.fromFile(file);

try {
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, UrlGambar);
intent.putExtra("return-data", true);

startActivityForResult(intent, CAMERA);
} catch (Exception e) {
e.printStackTrace();
}

dialog.cancel();
}
else if(pilihan == 1)
{
Intent intent = new Intent();

intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(Intent.createChooser(intent, "Pilih Aplikasi"), FILE);
}
}
} );

final AlertDialog dialog = builder.create();

SetImageView = (ImageView) findViewById(R.id.img_set);

Button tmb_pilih = (Button) findViewById(R.id.btn_pilih);
tmb_pilih.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.show();
}
});
}


public void setaswp(){
String FileName;
File file = new File(Environment.getExternalStorageDirectory() , "DCIM/Camera/");
File[] imageFiles = file.listFiles( );
if(imageFiles.length > 0 ) {
FileName = imageFiles[0].getName();
final WallpaperManager wallpaperManager = WallpaperManager.getInstance(getBaseContext());
Bitmap myBitmap = BitmapFactory.decodeFile("/sdcard/DCIM/Camera/" + FileName);

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels << 1;
myBitmap = Bitmap.createScaledBitmap(myBitmap,width, height, true);
try {
wallpaperManager.setBitmap( myBitmap);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

public void setwallpaper(){
String Filename;
File file = new File(Environment.getExternalStorageDirectory(),
"DCIM/Camera/");



File[] imageFiles = file.listFiles( );

if(foto > 0){
Filename = image_Currs;
}
else{
Filename = imageFiles[imageFiles.length - 1].getName();
}

File files = new File(Environment.getExternalStorageDirectory(),
"DCIM/Camera/" + Filename);
FileInputStream is;
try {
is = new FileInputStream(files);

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels << 1;

BufferedInputStream bis = new BufferedInputStream(is);
Bitmap bitmap = BitmapFactory.decodeStream(bis);
Bitmap useThisBitmap = Bitmap.createScaledBitmap(
bitmap, width , height, true);
bitmap.recycle();
if(file!=null){
System.out.println("Hi I am try to open Bit map");

final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
final Drawable wallpaperDrawable = wallpaperManager.getDrawable();

// wallpaperManager = WallpaperManager.getInstance(this);
// wallpaperDrawable = wallpaperManager.getDrawable();
wallpaperManager.setBitmap(useThisBitmap);
}
}
catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

private boolean equal(String image_Currs2, String string) {
// TODO Auto-generated method stub
return false;
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) return;

Bitmap bitmap = null;
String path = "";

if (requestCode == FILE)
{
UrlGambar = data.getData();
path = getRealPath(UrlGambar);

if (path == null)
{
path = UrlGambar.getPath();
}
else
{
bitmap = BitmapFactory.decodeFile(path);
}
}
else
{
path = UrlGambar.getPath();
bitmap = BitmapFactory.decodeFile(path);
}

Toast.makeText(this, path,Toast.LENGTH_LONG).show();
SetImageView.setImageBitmap(bitmap);
}

public String getRealPath(Uri contentUri)
{
String path = null;
String[] images_data = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(contentUri, images_data, null, null, null);
if(cursor.moveToFirst())
{
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
path = cursor.getString(column_index);
}
cursor.close();
return path;
}
}

-Manifest-

http://schemas.android.com/apk/res/android
"
package="com.echa.kamera"
android:versionCode="1"
android:versionName="1.0" >

android:minSdkVersion="8"
android:targetSdkVersion="17" />

android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

  • Tampilan Kerja Android

  • Screenshot dari hasil sourcode, yaitu berupa tampilan aplikasi sperti dibawah ini