How to create simple torch application in android
First create simple app with empty activity, clear all padding and set
all default thing.
Secondly create two identified buttons or Image Buttons is up to
development requirement.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true" android:src="@drawable/off" android:layout_centerHorizontal="true" android:layout_centerInParent="true" android:id="@+id/off" android:onClick="Torch" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true" android:src="@drawable/on" android:layout_centerHorizontal="true" android:layout_centerInParent="true" android:id="@+id/on" android:onClick="Torch" android:visibility="gone" /> </RelativeLayout>
Now, to create torch app, we required permissions and access to control
camera and its feature flash light.
For permission go to manifest.xml and change in existing code for
permissions.
<?xml version="1.0"
encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.user.mesale">
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.flash"/>
<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"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.user.mesale">
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.flash"/>
<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"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
No go to activity’s java class and create following code
public class MainActivity extends AppCompatActivity { ImageButton on,off; Camera camera; Camera.Parameters parameters; boolean isFlash = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
on = (ImageButton) view.findViewById(R.id.on);
off = (ImageButton) view.findViewById(R.id.off);
if (view.getContext().getApplicationContext().getPackageManager().hasSystemFeature(view.getContext().getPackageManager().FEATURE_CAMERA_FLASH)){
isFlash=true;
camera=Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
}else {
Toast.makeText(getActivity(),"Please Install Camera",Toast.LENGTH_LONG).show();
}
on.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
on.setVisibility(View.GONE);
off.setVisibility(View.VISIBLE);
}
});
off.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.stopPreview();
on.setVisibility(View.VISIBLE);
off.setVisibility(View.GONE);
}
});
}
@Override
public void onStop() {
super.onStop();
if(camera!=null){
camera.release();
}
}
}
}
off = (ImageButton) view.findViewById(R.id.off);
if (view.getContext().getApplicationContext().getPackageManager().hasSystemFeature(view.getContext().getPackageManager().FEATURE_CAMERA_FLASH)){
isFlash=true;
camera=Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
}else {
Toast.makeText(getActivity(),"Please Install Camera",Toast.LENGTH_LONG).show();
}
on.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
on.setVisibility(View.GONE);
off.setVisibility(View.VISIBLE);
}
});
off.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.stopPreview();
on.setVisibility(View.VISIBLE);
off.setVisibility(View.GONE);
}
});
}
@Override
public void onStop() {
super.onStop();
if(camera!=null){
camera.release();
}
}
}
}
No comments:
Post a Comment