如何在Android中降低和降低手电筒的光强度

时间:2016-08-06 11:18:25

标签: android

这是我的代码现在我想增加或减少闪光灯的强度。可能是通过移动搜索栏来移动搜索栏,增加或减少闪光的光我怎么办.......这是我的代码现在我想增加或减少闪光灯的强度。可能是通过移动搜索栏来移动搜索栏,增加或减少闪光的光我怎么办.....这是我的代码现在我想增加或减少闪光灯的强度。可能是通过移动搜索栏通过搜索栏增加或减少闪光灯的光我怎么办

    public class MainActivity extends Activity {
    private Camera camera;
    private Camera.Parameters parameters;
    private ImageButton flashLightButton;
    boolean isFlashLightOn = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        flashLightButton = (ImageButton)findViewById(R.id.flash_btn);
        flashLightButton.setOnClickListener(new FlashOnOffListener());

        if (isFlashSupported()) {
            camera = Camera.open();
            parameters = camera.getParameters();
        } else {
            showNoFlashAlert();
        }
    }

    private class FlashOnOffListener implements View.OnClickListener{

        @Override
        public void onClick(View v) {
            if(isFlashLightOn){
                flashLightButton.setImageResource(R.drawable.flashlight_off);
                parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
                camera.setParameters(parameters);
                camera.stopPreview();
                isFlashLightOn = false;
            }else{
                flashLightButton.setImageResource(R.drawable.flashlight_on);
                parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
                camera.setParameters(parameters);
                camera.startPreview();
                isFlashLightOn = true;
            }

        }

    }

    private void showNoFlashAlert() {
        new AlertDialog.Builder(this)
                .setMessage("Your device hardware does not support flashlight!")
                .setIcon(android.R.drawable.ic_dialog_alert).setTitle("Error")
                .setPositiveButton("Ok", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        finish();
                    }
                }).show();
    }

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

    @Override
    protected void onDestroy() {
        if(camera != null){
            camera.stopPreview();
            camera.release();
            camera = null;
        }
        super.onDestroy();
    }
}

1 个答案:

答案 0 :(得分:0)

请查看以下Github页面了解您的解决方案:

https://github.com/stwalkerster/strobelight