我有一个使用两个按钮(on_btn和off_btn)打开和关闭手电筒的手电筒代码。将两个按钮更改为切换按钮
如何将它们关联在一个按钮中?
非常新手请您给出详细的建议吗?
下面的代码可以从答案中找到:它适用于我的手机。但在模拟器上,它会在点击按钮时崩溃。这里是猫日志https://dl.dropbox.com/u/15065300/logcat1.png
行号74是:参数params = mCamera.getParameters();
请问任何人有什么建议吗?
public class FlashLight extends Activity {
private final static String LOG_TAG = "FlashLight";
private Button mOnBtn;
private Camera mCamera;
private boolean isActive;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//this will be inside your onCreate...
mOnBtn = (Button) findViewById(R.id.on_btn);
mOnBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
flipSwitch();
processClick();
}
});
}
//these will be outside your onCreate
public void flipSwitch() {
isActive = !isActive;
}
@Override
protected void onResume() {
super.onResume();
try{
mCamera = Camera.open();
mCamera.startPreview();
Toast.makeText(getApplicationContext(),"Camera is present", Toast.LENGTH_LONG).show();
} catch(Exception e){
Log.e(LOG_TAG, "Impossible d'ouvrir la camera");
}
}
@Override
protected void onPause() {
if(mCamera != null){
mCamera.release();
mCamera = null;
}
super.onPause();
}
public void processClick() {
if(isActive) {
Parameters params = mCamera.getParameters();
params.set("flash-mode", "torch");
mCamera.setParameters(params);
mCamera.startPreview();
}
else {
Parameters params = mCamera.getParameters();
params.set("flash-mode", "off");
mCamera.setParameters(params);
mCamera.stopPreview();
}
}
}
做了下面的答案有帮助吗?如果是这样,接受一个或不然,扩大任何进一步的问题。 – Jeeter
@Jeeter你的建议适用于我,但它在模拟器上崩溃,同时点击按钮。我上面编辑了我的代码。你有什么进一步的建议吗? –
我能想到的唯一的事情是,当你调用它时,你的'mCamera'对象是null。 – Jeeter