بسم الله الرحمن الرحيم
سنتكلم فى هذا الموضوع عن كيفية فتح وغلق فلاش الكاميرا الخاصه بالموبايل اذا وجدت فيه . عن طريق زر On , Off .
اول شئ نقوم بانشاء مشروع جديد باسم FlashLight
وننشئ فيه كلاس واحد باسم MainActivity.java
نذهب الى ملف activity_main.xml
ونضع الكود التالى فيه :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:orientation="vertical"
android:gravity="center">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ON"
android:id="@+id/onBtn"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="OFF"
android:id="@+id/offBtn"/>
</LinearLayout>
|
ليكون ناتج التصميم كالتالى :
ثم بعد ذلك ننتقل الى ملف MainActivity.java
ونعرف هذه المتغيرات
|
|
Button onBtn,offBtn;
Camera cam;
Parameters p;
boolean status;
|
المتغيران onBtn ,offBtn للزر ON , OFF و المتغير cam للكاميرا .
والمتغير status للتاكد من حاله الفلاش اذا كان مفتوحا ام لا .
وفى داله onCreate نضع كود حدث الضغط على الزر ON (فتح الفلاش):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
onBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!status)
{
cam = Camera.open();
p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();
status=true;
}
}
});
|
حيث انه يتاكد فى البدايه اذا كان الفلاش مفتوح مسبقا فاذا كان مفتوح فلا يفتحه مره اخرى . ثم عن طريق المتغير cam يفتح الكاميرا
ثم يجعل وضع الفلاش مفتوحا ويضع المتغير status فى حاله true اى ان الفلاش مفتوحا
ثم بعد ذلك فى داله onCreate ايضا نضع كود زر OFF (قفل الفلاش)
|
|
offBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(status) {
cam.stopPreview();
cam.release();
status=false;
}
}
});
|
عن طريق المتغير cam يعطى امر بغلق الفلاش ويعطى قيمه للمتغير status تساوى false اى ان الفلاش اصبح مغلقا
ليكون الكود النهائى لملف MainActivity.java
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
|
package mahmoudbakr.com.flashlight;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
public class MainActivity extends Activity {
Button onBtn,offBtn;
Camera cam;
Parameters p;
boolean status;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onBtn=(Button)findViewById(R.id.onBtn);
offBtn=(Button)findViewById(R.id.offBtn);
onBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!status)
{
cam = Camera.open();
p = cam.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();
status=true;
}
}
});
offBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(status) {
cam.stopPreview();
cam.release();
status=false;
}
}
});
}
}
|
ثم فى ملف ال Androidmanifest.xml نعطى صلاحيه للتطبيق بفتح الفلاش والكاميرا عن طريق وضع الكود التالى :
|
|
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
|
ليصبح الشكل النهائى لملف Androidmanifest.xml كالتالى :
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
|
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mahmoudbakr.com.flashlight" >
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
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>
</manifest>
|
ملحوظه :-
يفضل تجربة المشروع على موبايل حقيقى يحتوى على فلاش لكى تتمكن من رؤيه فتح وغلق الفلاش .
Comments
Post a Comment