خاموش / روشن کردن چراغ قوه گوشی در اپلیکیشن (پروژه محور)
سه شنبه 8 مهر 1399آموزش روشن و خاموش کردن چراغ قوه در اپلیکیشن اندروید (اولین مقاله پروژه محور سایت برنامه نویسان)
خب در ابتدای این مقاله بگم که این مقاله اولین مقاله پروژه محور سایت برنامه نویسان هست :)
بریم سراغ پروژه خب امروز میخوایم که یک نرم افزار چراغ قوه بنویسیم در ابتدای کار یک اپلیکیشن در IDE خود ایجاد میکنیم
در ابتدای کار یک دکمه ایجاد میکنیم که زمانی روی آن کلیک شد چراغ قوه روشن یا خاموش بشود که من از قبل آماده کردم و کد های XML این صفحه رو در اختیارتون قرار میدم
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/linear1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp"
android:background="#000000"
android:gravity="center_horizontal|center_vertical"
android:orientation="vertical"
android:layout_gravity="center_horizontal|center_vertical">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="85dp"
android:padding="8dp"
android:text="روشن"
android:textSize="30sp"
android:textColor="#FFFFFF"/>
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="برنامه نویسان barnamenevisan.org"
android:textSize="12sp"
android:textColor="#FFFFFF"/>
</LinearLayout>
</LinearLayout>
حالا ما یک دکمه داریم که میتوانیم با onclick شدن آن چراغ قوه را روشن و خاموش کنیم
این از کد های XML حالا بریم سراغ کد های جاوا در ابتدا یک متغیر Boolean تعریف میکنیم یادتان باشد که به صورت پیشفرض آن را False قرار بدیم
private boolean on_and_off = false;
اینم از این حالا دو تابع بنویسیم که هروقت صدا شدن تابع اول چراغ قوه را روشن و تابع دوم چراغ قوه را خاموش کند
تابع تعریف شده برای روشن شدن چراغ قوه
public void _flashLightOn () {
android.hardware.camera2.CameraManager cameraManager = (android.hardware.camera2.CameraManager) getSystemService(Context.CAMERA_SERVICE);
try {
String cameraId = cameraManager.getCameraIdList()[0]; cameraManager.setTorchMode(cameraId, true); } catch (android.hardware.camera2.CameraAccessException e) { }
}
تابع تعریف شده برای خاموش شدن چراغ قوه
public void _flashLightOff () {
android.hardware.camera2.CameraManager cameraManager = (android.hardware.camera2.CameraManager) getSystemService(Context.CAMERA_SERVICE);
try {
String cameraId = cameraManager.getCameraIdList()[0]; cameraManager.setTorchMode(cameraId, false); } catch (android.hardware.camera2.CameraAccessException e) { }
}
حالا بریم سراغ اصل مطلب :)
یعنی زمانی که دکمه ای که در ابتدا تعریف کردیم onclick بشه
private void initialize(Bundle _savedInstanceState) {
linear1 = (LinearLayout) findViewById(R.id.linear1);
button1 = (Button) findViewById(R.id.button1);
textview1 = (TextView) findViewById(R.id.textview1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View _view) {
if (on_and_off) {
_flashLightOff();
button1.setText("روشن ");
int[] colorsCRNRK = { Color.parseColor("#006aff"), Color.parseColor("#00ffe4") }; android.graphics.drawable.GradientDrawable CRNRK = new android.graphics.drawable.GradientDrawable(android.graphics.drawable.GradientDrawable.Orientation.BR_TL, colorsCRNRK);
CRNRK.setCornerRadii(new float[]{(int)64,(int)64,(int)64,(int)64,(int)64,(int)64,(int)64,(int)64});
CRNRK.setStroke((int) 0, Color.parseColor("#000000"));
button1.setElevation((float) 12);
button1.setBackground(CRNRK);
on_and_off = false;
}
else {
_flashLightOn();
button1.setText("خاموش");
int[] colorsCRNIK = { Color.parseColor("#ff2800"), Color.parseColor("#ff00f9") }; android.graphics.drawable.GradientDrawable CRNIK = new android.graphics.drawable.GradientDrawable(android.graphics.drawable.GradientDrawable.Orientation.BR_TL, colorsCRNIK);
CRNIK.setCornerRadii(new float[]{(int)64,(int)64,(int)64,(int)64,(int)64,(int)64,(int)64,(int)64});
CRNIK.setStroke((int) 0, Color.parseColor("#000000"));
button1.setElevation((float) 12);
button1.setBackground(CRNIK);
on_and_off = true;
}
}
});
}
خب اینم از این حالا یکم بهتون در رابطه با کد بالا توضیح بدم
وقتی که کلیک میشه روی دکمه کد های بالای ما اجرا میشن
یادتونه متغیرمون رو False کرده بودیم؟ در این شرطی که در کد های بالا وجود داره میگه که زمانی True نبود چراغ قوه رو روشن کن و متغیر رو True کن
حالا کاربر برای بار دوم کلیک که میکنه متغیر ما که True شده پس شرط اصلی انجام میشه یعنی چراغ قوه خاموش میشه و دوباره متغیر False میشه
و به همین روال اگه کاربر دوباره کلیک که کرد چراغ قوه روشن میشه
خب تموم شد :)
کل سورس پروژه رو در یک فایل ZIP براتون ضمیمه میکنم و میتونید به راحتی به سورس کامل دسترسی داشته باشید ;)
همچنین در این فایل ، فایل APK رو هم براتون قرار میدم که کامپایل شده همین سورسه
اینجا یه نکته هم بگم :
انقدم من بی سلیقه نیستما بخاطر اینکه سریع کارو تموم کنیم یه مقدار زشت شد وگرنه باور کنید بیشتر از اینا خلاقیت دارم :)
در ضمن خودمونی صحبت کردنم توی مقاله هم صرفا جهت این بود که راحت تر تعامل کنید امیدوارم باعث دلخوری نشده باشه
امیدوارم به دردتان خورده باشد
موفق و پیروز باشید .
محتویات فایل ضمیمه شده : XML , java , apk
رمز فایل : barnamenevisan.org
- Android
- 3k بازدید
- 1 تشکر