65.9K
CodeProject 正在变化。 阅读更多。
Home

Android 手电筒应用

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2018 年 6 月 22 日

CPOL
viewsIcon

9124

downloadIcon

133

这是一个使用 Android 构建的手电筒应用程序的演示。

引言

在本文中,我旨在以尽可能简单的方式演示 Android 手电筒应用程序的创建。 代码简单易懂,即使是初学者也能理解。

背景

该应用程序的界面由一个 ImageButton 控件组成,其图像会切换以表示打开和关闭状态。 以下是布局代码 (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<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:gravity="center"
    android:orientation="vertical"
    tools:context="com.example.azim.mytorch.MainActivity">
    <ImageButton android:id="@+id/btnOnOff"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/start" />
</LinearLayout>

以下行需要在 AndroidManifest.xml 文件中才能启用应用程序中使用摄像头的功能。

<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.Camera"/>

Using the Code

可以创建以下函数来检查我们的设备是否支持相机闪光灯功能

private boolean isFlashSupported()
{
   return getApplicationContext().getPackageManager().hasSystemFeature
                                       (PackageManager.FEATURE_CAMERA_FLASH);
}

以下是 ImageButtononClick() 方法的代码

public void onClick(View view)
{
    if(isFlashSupported())
    {
        if(!isOn)
        {
            camera=Camera.open();
            params=camera.getParameters();
            params.setFlashMode(params.FLASH_MODE_TORCH);
            camera.setParameters(params);
            camera.startPreview();
            btnOnOff.setImageResource(R.drawable.stop);
            Toast.makeText(getBaseContext(),"Torch turned on",Toast.LENGTH_SHORT).show();
        }
        else
        {
            params=camera.getParameters();
            params.setFlashMode(params.FLASH_MODE_OFF);
            camera.setParameters(params);
            camera.stopPreview();
            camera.release();
            camera=null;
            btnOnOff.setImageResource(R.drawable.start);
            Toast.makeText(getBaseContext(),"Torch turned off",Toast.LENGTH_SHORT).show();
        }
        isOn=!isOn;
    }
    else
    {
        Toast.makeText(getBaseContext(),"Sorry your device does not support flash light",
                       Toast.LENGTH_SHORT).show();
    }
}

以上代码使用一个 boolean 变量 isOn 来检查相机的当前状态。 Camera.Parameters 类的 setFlashMode() 方法用于更改相机状态。 ImageButton 类的 setImageResource() 方法用于更改按钮上的图像。

关注点

我希望这篇文章能帮助您理解 Android 手电筒应用程序的工作原理。

© . All rights reserved.