Problème application lampe torche
Bonjour, je suis en train de coder une application lampe torche basique avec seulement un bouton on/off , le flash s'active / désactive quand on clique sur le bouton.
Seulement, j'ai un problème, le flash ne s'active pas , il ne se passe rien lorsque j'appuis sur le bouton (je precise que j'ai tester le projet sur un motorola defy). Je voudrais donc savoir si j'ai oublié quelque chose dans le code source, merci d'avance ! :)
voici le fichier java de l'activité:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| package com.jimmy.android.lampe;
import android.app.Activity;
import android.os.Bundle;
import android.hardware.Camera;
import android.view.*;
import android.widget.*;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class LampeTorcheActivity extends Activity implements SurfaceHolder.Callback {
boolean on;
ToggleButton interrupteur;
private Camera camera;
Camera.Parameters p;
private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
surfaceView = (SurfaceView)findViewById(R.id.surface_view);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
on = false;
interrupteur = (ToggleButton) findViewById(R.id.toggleButton1);
camera = Camera.open();
p = camera.getParameters();
camera.setParameters(p);
camera.startPreview();
interrupteur.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
on = !on;
if(on){
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
}else{
p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
}
}
});
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
public void surfaceCreated(SurfaceHolder holder) {
}
/**
* Méthode appelée immédiatement avant la destruction de la surface.
*/
public void surfaceDestroyed(SurfaceHolder holder) {
if (camera != null) {
camera.stopPreview();
camera.release();
}
}
} |
et l'interface XML :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_vertical|center_horizontal" >
<SurfaceView
android:id="@+id/surface_view"
android:layout_width="1dp"
android:layout_height="1dp"
/>
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="82dp"
android:layout_height="wrap_content"
android:text="ToggleButton" />
</LinearLayout> |