Android Kamera Flash Uygulaması

Ekim 7, 2012

Merhaba arkadaşlar, Android cihaz’ımızaki ( telefon , tablet ) kamera’nın flash’ını kullanmak için küçük bir örnek yapıyoruz.Uygulama ekrandaki bir tane ImageView kontrolüne bağımlı olarak flash’ı yakıp söndürecek.Arayüz olarak çok sade olacağı için o kısımda çok fazla durmadan uygulamamızı oluşturalım ve main.xml dosyamızın içerisini dolduralım

 

Main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/arkaplan"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/ivDurum"
        android:layout_width="130dp"
        android:layout_height="130dp"
        android:layout_marginTop="180dp"
        android:layout_gravity="center" />

</LinearLayout>

Ekranda flash’ı açıp kapatmak için sadece 1 tane ImageView kontrolümü ekledik ve ID bilgisini atadık.Daha sonra flash’ın aktif / pasif durumları için 2 tane resmi res > drawable-hdpi klasör’ünün içerisine aktaralım.Kamera ‘yı kullanacağımız için uygulamamıza izin ‘lerimizide ekleyelim

 

AndroidManifest.xml


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

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".FlashActivity"
            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>

    <uses-permission android:name="android.permission.CAMERA" />

    <permission
        android:name="android.permission.FLASHLIGHT"
        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
        android:protectionLevel="normal" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-feature android:name="android.hardware.camera.flash" />

</manifest>

 

Son olarak FlashActivity.java

package com.FlashApp;

import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;

public class FlashActivity extends Activity implements OnClickListener {

	private boolean durum = false;

	ImageView ivDurum;
	Camera camera;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		ivDurum = (ImageView) findViewById(R.id.ivDurum);
		ivDurum.setImageResource(R.drawable.mavi);
		ivDurum.setOnClickListener(this);

	}

	@Override
	public void onClick(View view) {
		IVFlash();
	}

	private void IVFlash() {
		if (!durum) {
			ivDurum.setImageResource(R.drawable.yesil);
			camera = Camera.open();
			Parameters params = camera.getParameters();
			params.setFlashMode(Parameters.FLASH_MODE_TORCH);
			camera.setParameters(params);
			camera.startPreview();
			durum = true;
		} else {
			ivDurum.setImageResource(R.drawable.mavi);
			camera.stopPreview();
			camera.release();
			durum = false;
		}
	}

}

 

Uygulamamızın ilk açılışında xml tarafındaki kontrolümüze ( ImageView ) ulaşıyoruz ve ilk değer olarak mavi resmi atıyoruz ve click event’ini yakalıyarak IVFlash() method’una yönlendiriyoruz.

FLASH_MODE_TORCH ile kamera’mızın flash’ını aktif hale getiriyoruz.Uygulamada 2 tane seçenek olduğu için if – else yapısını kullanıyoruz.Cihaz’ımızdaki flash açık ise kapatıyoruz , kapalı ise açıyoruz

 

Son olarak ekran görünttüleri

 

 

Kaynak Kodları Buradan İndirebilirsiniz

 

tags: ,
posted in Android by gokhan

Follow comments via the RSS Feed | Yorum yapın | Trackback URL

Leave Your Comment

*

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org