در این آموزش یاد خواهید گرفت که چگونه می توان از چراغ دوربین گوشی به عنوان چراغ قوه استفاده کرد. این آموزش بر روی گوشی هایی کاربرد دارد که دارای LED دوربین می باشد که امروزه اکثر گوشی ها دارا می باشند.
اکثر گوشی ها دارای چراغ یا همان LED می باشند که به اندازه ای قدرتمند هستند که بتوان از آنها به عنوان چراغ قوه استفاده کرد. معمولا بر روی بعضی از گوشی ها در نوار وضعیت (Statusbar) گزینه ای برای روشن کردن این چراغ وجود دارد. اما ما می خواهیم اپلیکیشن خودمان را داشته باشیم تا بتوانیم انواع گزینه های مختلف را نیز به آن اضافه کنیم مانند چشمک زدن.
در آموزش زیر فقط نحوه روشن کردن را به شما آموزش داده ام که بعد از یادگیری آن می توانید هر افکتی را به آن اضافه کنید.
برای روشن و خاموش کردن چراغ دوربین گوشی، اول از همه Permission ها را در AndroidManifest.xml تعریف می کنیم
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="bahonar.flashlight"> <uses-permission android:name="android.permission.FLASHLIGHT"/> <uses-permission android:name="android.permission.CAMERA" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
قسمت layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" 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="bahonar.flashlight.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <ImageButton android:id="@+id/btnOn_Off" android:layout_width="70dp" android:layout_height="70dp" android:background="@drawable/off"/> </LinearLayout> </RelativeLayout>
حال نوبت به کد برنامه می رسد.
در کد برنامه ما متغیری از نوع boolean ایجاد میکنیم که آخرین وضعیت LED را نگه می دارد.
private boolean IsOn=false;
برنامه از یک دکمه برای روشن و خاموش کردن LED استفاده می کند که برای این کار باید بدانیم که LED الان در چه وضعیتی است. روشن یا خاموش. بنابراین از متغیر IsOn استفاده می کنیم.
package bahonar.flashlight; import android.hardware.Camera; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageButton; public class MainActivity extends AppCompatActivity { private boolean IsOn=false;//for checking if flashlight is on or off private Camera camera; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ImageButton btnOn_Off=(ImageButton)findViewById(R.id.btnOn_Off); btnOn_Off.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(IsOn){//set to OFF camera.stopPreview();//turn off LED camera.release(); IsOn=false; btnOn_Off.setImageResource(R.drawable.off); } else{//set to ON camera = Camera.open();//get instance of Camera Camera.Parameters parameters = camera.getParameters(); parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);//set LED state in camera (ON) camera.setParameters(parameters);//set parameter to camera camera.startPreview();//turn on LED IsOn=true; btnOn_Off.setImageResource(R.drawable.on); } } }); } }
سلام ممنون از مطالب مفیدی که ارائه میدی.
سوال : این کدها را در کجا و چه برنامه ای باید وارد کنیم؟
علیک سلام
این کدها رو باید تو نرم افزار اندروید استودیو وارد کنید.
سلام آقا مهندیس با زبانی ++c بنویسی میشه
علیک سلام
چرا نمیشه ولی خب وقتی جاوا هست و راحت میشه این کار رو کرد چرا از ++c استفاده می کنید؟