Rabu, 29 Januari 2014

Aplikasi Android mengoprasikan Kamera dan Set as Wallpaper


Membuat aplikasi sederhana yang berjalan pada perangkat android dengan memanfaatkan fitur kamera dan "set as wallpaper" dapat disimak pada artikel berikut, just check it out :)

Langkah Pertama yang perlu disiapkan untuk membuat aplikasi sederhana yang berjalan pada perangkat android ini menggunakan aplikasi Eclipse bisa di download di eclipse versi 4 dengan tutorial dasar menggunakan Eclipse dapat di lihat pada link "ini".

Setelah aplikasi diinstall maka langsung saja code yang diperlukan dalam pembuatan aplikasi andorid ini
Berikut merupakan kode dari file Activity yang berekstensi xml yang terletak pada folder utama/res/layout. file xml ini memiliki fungsi untuk memberikan interface pada aplikasi yang akan dibuat dan berikut merupakan source codenya. 

XML File

<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="@drawable/wallpaper"
    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=".KameraActivity" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/img_set"
            android:layout_width="250dp"
            android:layout_height="250dp"
            android:layout_marginTop="10dp"
            android:src="@drawable/ic_launcher" />

    </TableRow>

    <Button
        android:id="@+id/wallSET"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="Jadikan Wallpaper" />

    <Button
        android:id="@+id/sourceOPT"
        style="@style/AppBaseTheme"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/wallSET"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="18dp"
        android:text="Cari Gambar" />

</RelativeLayout>




Dari source code diatas memberikan tampilan aplikasi sebagai berikut :


dengan catatan bahwa pada baris ke lima dari source code diatas memiliki fungsi untuk meng import background dengan nama file "wallpaper" yang harus diletakan pada folder res/drawable-hdpi.

Setelah selesai berhadapan dengan coding yang berfungsi untuk mengatur interface maka sekarang kita lanjutkan dengan coding yang berfnugsi untuk memberikan fungsi perintah pada setiap tombol yeng terdapat pada interface tersebut. Berikut merupakan source code yang terdapat dalam aplikasi tersebut


Java File

package com.UAS.pujacameraapp;

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 KameraActivity 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_kamera);
     
       Button home = (Button)findViewById(R.id.wallSET);
   
   
    home.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
setwallpaper();
}
});
   
     
       final String [] pilih = new String [] {"Kamera", "Gallery"};
ArrayAdapter<String> arr_adapter = new ArrayAdapter<String>
(this, android.R.layout.select_dialog_item,pilih);
AlertDialog.Builder builder = new AlertDialog.Builder(this);


builder.setTitle("Pilih Sumber");
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.sourceOPT);
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;
   }
}





Dan berikut merupakan file tambahan pada aplikasi tersebut, agar aplikasi kamera ini mendapatkan hak akses untuk mengoprasikan perangkat kamera pada device Android yang di atur dalam file "manifest.xml"




Manifest File

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.UAS.pujacameraapp" android:versionCode="1" android:versionName="1.0" >

 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <uses-permission android:name="android.permission.CAMERA"></uses-permission> <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/> <uses-permission

android:name="android.permission.SET_WALLPAPER"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" >

 <activity android:name="com.UAS.pujacameraapp.KameraActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>



NB:
Berikut merupakan properties nama pada saat membuat aplikasi baik dari nama file activity, java dll





Berikut Merupakan Direct Link Download Aplikasi Yang Sudah Jadi Puja Camera APP

0 komentar:

Posting Komentar