J'ai un programme simple qui dessine l'aperçu du Camera
dans un SurfaceView
. Ce que j'essaie de faire est d'utiliser la méthode onPreviewFrame
, qui est invoquée chaque fois qu'une nouvelle image est dessinée dans le SurfaceView
, afin d'exécuter la méthode invalidate
qui est censée invoquer la méthode onDraw
. En fait, la méthode onDraw
est invoquée, mais rien n'est imprimé (je suppose que l'aperçu de la caméra écrase le texte que j'essaie de dessiner).Comment dessiner une superposition sur un SurfaceView utilisé par Camera sur Android?
Ceci est une version simplify de la sous-classe SurfaceView
je:
public class Superficie extends SurfaceView implements SurfaceHolder.Callback {
SurfaceHolder mHolder;
public Camera camera;
Superficie(Context context) {
super(context);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public void surfaceCreated(final SurfaceHolder holder) {
camera = Camera.open();
try {
camera.setPreviewDisplay(holder);
camera.setPreviewCallback(new PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera arg1) {
invalidar();
}
});
} catch (IOException e) {}
}
public void invalidar(){
invalidate();
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(w, h);
camera.setParameters(parameters);
camera.startPreview();
}
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
// nothing gets drawn :(
Paint p = new Paint(Color.RED);
canvas.drawText("PREVIEW", canvas.getWidth()/2,
canvas.getHeight()/2, p);
}
}
u peut me aider pls comment u ont fait im essayant de changer de couleur de dessin sur le bouton cliquez comme BUTTON1- > button2-> jaune etc comment vais-je faire cela en utilisant la toile? Je veux appliquer sur caméra en direct même que les effets de caméra en direct travail – Erum