我有一個使用兩個按鈕(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