Android Studio Flashlight Uygulaması
Android Studio’da bugün 3. uygulamayı geliştireceğiz. 3 uygulamada bir image button atıp onu toggle button şeklinde kullanacağız. Toggle button’u açma kapama tuşu olarak düşünün. Tuşa bastığımızda açılacak, Tuşa bastığımızda kapatılacak. Button’a basınca biz kamera’dan flash’a bağlanıp açıcağız, diğer bir tıklamada flash’ı kapatacağız. Hadi başlayalım. Yeni bir proje açıyoruz.
İlk iş olarak 2 tane izin alarak başlayalım.Android manifest Dosyasına aşağıdaki kodları ekleyin.
|
1 2 |
<uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" /> |
İzinleri aldıktan sonra uygulamamızın icon’u değiştirelim. Güzel bir görüntü elde edelim. Mipmap içine küçük iconu atın. Diğer lambalarıda kaydedin. Bunları uygulamada mesela kapalıyken gri olanını, açıkkende sarı olanını göstereceğiz.
Activity_main dosyamızın kodları
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:background="#cae5e0"> <ImageButton android:id="@+id/btnSwitch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="100dip" android:src="@drawable/btn_switch_on" android:background="@null" android:contentDescription="@null" /> </RelativeLayout> |
Şimdide MainActivity.java dosyamızın kodları:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
package com.umiitkose.myapplication; 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.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageButton; import com.umiitkose.myapplication.R; public class MainActivity extends Activity { ImageButton btnSwitch; private Camera camera; private boolean flashAcik; private boolean flashVarmı; Parameters params; MediaPlayer mp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnSwitch = (ImageButton) findViewById(R.id.btnSwitch); //ImageButton'u tanımladık //İlk işlem kameranın flash'ının olup olmadığı flashVarmı = getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); if (!flashVarmı) { //FlashYoksa alertDialog ile ekrana flash'ın olmadığını çıkardık AlertDialog alert = new AlertDialog.Builder(MainActivity.this).create(); alert.setTitle("HATA"); alert.setMessage("Bu aygıt Flash desteklemiyor"); alert.setButton("Tamam", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // Tamam'a basınca uygulamayı kapatıyoruz. finish(); } }); alert.show(); return; } // camera'ya erişiyoruz cameraAc(); //Flash'ın durumuna göre button'un resmini ayarlıyoruz toggleButtonImage(); /* * Button'a her tıklandığında olacaklar. Flash açıksa kapat, Kapalıysa aç */ btnSwitch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (flashAcik) { // Flash Acik true dönücek. Eğer Flash Açıksa Kapatıcak flashKapat(); } else { // Açık değilse button'a basınca açıcak flashAc(); } } }); } /* * Get the camera */ private void cameraAc() { if (camera == null) { camera = Camera.open(); params = camera.getParameters(); } } /* * Flash'ı açma kısmı burada */ private void flashAc() { if (!flashAcik) { if (camera == null || params == null) { return; } params = camera.getParameters(); params.setFlashMode(Parameters.FLASH_MODE_TORCH); camera.setParameters(params); camera.startPreview(); flashAcik = true; // Flash Button'u Değişiyor toggleButtonImage(); } } /* * Flash'ı kapatma kısmı */ private void flashKapat() { if (flashAcik) { if (camera == null || params == null) { return; } params = camera.getParameters(); params.setFlashMode(Parameters.FLASH_MODE_OFF); camera.setParameters(params); camera.stopPreview(); flashAcik = false; // changing button/switch image toggleButtonImage(); } } /* * Button'un değiştirmesi * */ private void toggleButtonImage(){ if(flashAcik){ btnSwitch.setImageResource(R.drawable.flash_ac); }else{ btnSwitch.setImageResource(R.drawable.flash_kapa); } }} |
Uygulamayı telefonda deneyiniz. Yoksa Flash desteklemiyor’u alırsınız. Telefonda açıkken ve kapalıykenki görünümü.. Apk dosyası oluşturarak deneyebilirsiniz.






7 thoughts on “Android Studio Flashlight Uygulaması”
Mehmet
(15 Şubat 2017 - 22:15)Abi şimdi bi uygulam yazıcam ama kodları bulamdım hani şu biri arayınca flaş yanması olayı varya onu geliştiricem fakat kodları bulamadım
umiitkose
(16 Şubat 2017 - 15:07)Kodları siz yazacaksınız zaten, bulmuyoruz bizde araştırıyoruz öğreniyoruz.. Nette bir sürü şey var… Öğrenmek amacınız olsun Bulmak değil..
eren
(24 Nisan 2017 - 19:39)merhaba
private Camera camera;
Parameters params;
bunları kabul etmiyor neden acaba
Ahmet
(13 Mayıs 2017 - 16:34)Üst sürüm Androidler de çöküyor. Android 5.1.1 de stabil ama 6.0 üstünde çöküyor neden?
umiitkose
(14 Mayıs 2017 - 08:59)Merhaba Ahmet Bey,
6.0 için nerede çöküyor, ne diyor ? İzinlerini eklediniz mi ?
Erdem
(21 Ağustos 2017 - 17:28)Geç görüyorum fakat eğer aynı sorunu yaşanlar için söyleyeyim ; android 6.0+ da manifest e eklenen izinler yetmiyor, Extaradan çalışırken uygulama izin almanız gerekir.
Alperen
(6 Temmuz 2019 - 19:33)Çok teşekkürler yararlı bir paylaşım olmuş.