Kodları indirmek veya kaynağa ulaşmak için:
1. Eclipse te yeni bir proje oluşturun. Projenin ismine ben MyFlash dedim siz de ne isterseniz isim olarak kullanabilirsiniz :).
2. Her zaman ki gibi önce uygulamamızın arayüzünü oluşturalım. /res/layout klasörü altındaki activity_main.xml dosyamızı açıyoruz. Eğerki grafik arayüz aktifse sol alttan .xml tabına tıklayıp kodları görüyoruz. Buraya aşağıda verdiğim kodları ekleyin, kodların açıklamalarını yine aşağıdan okuyabilirsiniz. Yaptığım açıklamalara, neyi neden kullandığımıza dikkat edin. Buyrun kodlar :)
<LinearLayout 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: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" android:background="#0470d9" android:orientation="vertical" > <!-- android:layout_width="match_parent" ekranın tüm genişliğini kullanmak için --> <!-- android:layout_height="match_parent" ekranın tüm yüksekliğini kullanmak için --> <!-- android:background="#0470d9" arka plan rengi --> <!-- android:orientation="vertical" > nesnelerin yerleşimini dikey olarak ayarlıyoruz --> <Button android:id="@+id/opbutton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ddd" android:gravity="center" android:layout_gravity="center" android:text="Flashı Aç" /> <!-- android:id="@+id/opbutton" buton idsi yani kimliği ya da ismi gibi düşünebilirsiniz --> <!-- android:layout_width="fill_parent" ekranın bütün genişliğini kullanmak için --> <!-- android:layout_height="wrap_content" ekranın buton yazısı için gereken yüksekliğini kullanmak için --> <!-- android:background="#ddd" buton arka plan rengi --> <!-- android:text="Flashı Aç" /> buton yazısı --> <Button android:id="@+id/clbutton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ddd" android:layout_marginTop="10dp" android:text="Flashı Kapat" /> <Button android:id="@+id/btnexit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ddd" android:layout_marginTop="200dp" android:text="Çıkış" /> <!-- android:layout_marginTop="200dp" butonun bir üstteki nesneden uzaklığını ayarlıyoruz --> </LinearLayout>
3. /src klasörü altındaki paket dosyamızın altından MainActivity.java dosyamızı açıp aşağıda verdiğim kodları girin. Açıklamalar kodların için de verilmiştir.
package com.eeecoder.myflash; // bir diğer nickim eeecoder :) import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.pm.PackageManager; 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.Button; public class MainActivity extends Activity { Camera camera; // Kamera nesnesi oluşturuyoruz. Parameters parameters; // kamera parametreleri için gerekli olan parametre değişkenini ve nesnesini bildiriyoruz. (declare etmek) @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // uygulamamızın arayüzü dosyasını layout klasörü altındaki activity_main dosyası olacak şekilde ayarlıyoruz. Button opbuton = (Button) findViewById(R.id.opbutton); // kullandığımız üç butona java dosyasından buton nesneleri yaratıp ulaşıyoruz. Button clbutton = (Button) findViewById(R.id.clbutton); Button btnexit = (Button) findViewById(R.id.btnexit); camera = Camera.open(); // burada kameramızı açıyoruz yani kameraya bağlanıyoruz. parameters = camera.getParameters(); // kamera parametrelerini alıyoruz. camera.startPreview(); // kamera nın parametrelere göre iş yapmasını burada sağlıyoruz. Boolean VarFlash; // VarFlash değişkenimizi bildiriyoruz. /* * First check if device is supporting flashlight or not */ VarFlash = getApplicationContext().getPackageManager() .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); // Kameramız flash a sahip mi? Onun bilgisini VarFlash değişkenine atıyoruz. if (!VarFlash) { // cihazın flashı yok! // bir alarm mesajı gösterip uygulamayı kapatıyoruz. AlertDialog alert = new AlertDialog.Builder(MainActivity.this) .create(); alert.setTitle("Hata"); alert.setMessage("Cihazınız Flashı desteklemiyor!"); alert.setButton("Tamam", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // uygulamayı kapatıyoruz finish(); } }); alert.show(); // alarm mesajını gösteriyoruz return; } opbuton.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { // opbuton a dokunulduğunda kameranın parametrelerini flashı açacak şekilde ayarlayıp kameraya yolluyoruz. parameters.setFlashMode(Parameters.FLASH_MODE_TORCH); camera.setParameters(parameters); } }); clbutton.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { // opbuton a dokunulduğunda kameranın parametrelerini flashı kapatacak şekilde ayarlayıp kameraya yolluyoruz. parameters.setFlashMode(Parameters.FLASH_MODE_OFF); camera.setParameters(parameters); } }); btnexit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // Çıkış butonuna dokunulduğunda uygulamayı kapatıyoruz. System.exit(0); } }); } @Override protected void onDestroy() { super.onDestroy(); } @Override protected void onRestart() { super.onRestart(); } @Override protected void onStop() { super.onStop(); // durma durumunda(mesela kullanıcı telefonunda geri butonuna basarsa) kamerayı serbest bırakıyoruz. Başka bir uygulama kullanmak isterse problem çıkmaması için. if (camera != null) { camera.release(); camera = null; } } }
4. AndroidManifest e kamera izni için aşağıdaki kodları ekliyoruz.
<uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" />
5. Uygulamamıza sağ tıklayıp Run As --> Android Application diyerek test ediyoruz. :)
Emulatör Çıktısı:
Gördüğünüz gibi Emulatör de beklediğimiz sonuç uygulamanın 'Cihazınız Flashı desteklemiyor! ' hatası vermesi. Uygulama Samsung S3 Mini telefonu ile test edilmiştir gayet güzel çalışmaktadır. Bir dersin daha sonuna geldik bütün Androidce ziyaretçilerine yararlı olması dileğiyle kolay gelsin :)
Not: Bu yazı Android Evreni kurucusu ve yazarı Mustafa DEMİR tarafından yazılmıştır.
Not: Bu yazı Android Evreni kurucusu ve yazarı Mustafa DEMİR tarafından yazılmıştır.
Androidce'yi yeni dersler için takip etmeye devam edin!
0 yorum:
Yorum Gönder