I have a screenshot of  the flicker here: http://tinypic.com/r/35003lv/6

On 5 Dec., 12:59, kaloer <mkal...@gmail.com> wrote:
> Hi,
>
> I have an Dialog with a custom view. This view has a SurfaceView which
> shows a camera preview. However, the preview is very flickering.
>
> The taken photo does not contain flicker. It looks as it should.
>
> Why does the preview flicker? (The camera does work :-) )
>
> This is my custom view:
> ---------
>
> public class CameraView extends LinearLayout implements
> SurfaceHolder.Callback, OnClickListener, PictureCallback {
>
>         private SurfaceView surfView;
>         private SurfaceHolder previewHolder;
>         private Camera camera;
>         OnProfilePictureTakenListener onProfilePictureTakenListener = null;
>
>         public CameraView(Context context) {
>                 super(context);
>                 setOnClickListener(this);
>                 surfView = new SurfaceView(getContext());
>                 addView(surfView);
>                 previewHolder = surfView.getHolder();
>                 previewHolder.addCallback(this);
>                 
> previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
>         }
>
>         @Override
>         public void surfaceChanged(SurfaceHolder holder, int format, int
> width,
>                         int height) {
>                 Camera.Parameters parameters = camera.getParameters();
>                 parameters.setPreviewSize(width, height);
>                 parameters.setPictureFormat(PixelFormat.JPEG);
>                 camera.setParameters(parameters);
>                 camera.startPreview();
>         }
>
>         @Override
>         public void surfaceCreated(SurfaceHolder holder) {
>                 camera = Camera.open();
>                 try {
>                         camera.setPreviewDisplay(previewHolder);
>                 } catch(Throwable t) {
>                         Log.e("surfaceCallback", "Exception", t);
>                         Toast.makeText(getContext(), t.getMessage(), 
> Toast.LENGTH_LONG).show
> ();
>                 }
>         }
>
>         @Override
>         public void surfaceDestroyed(SurfaceHolder holder) {
>                 camera.stopPreview();
>                 camera.release();
>                 camera = null;
>         }
>
>         @Override
>         public void onClick(View v) {
>                 takePicture();
>         }
>
>         private void takePicture() {
>                 camera.stopPreview();
>                 camera.takePicture(null, null, this);
>         }
>
>         @Override
>         public void onPictureTaken(byte[] data, Camera camera) {
>                 new SavePhotoTask().execute(data);
>                 camera.startPreview();
>         }
>
>         public void setOnPictureTakenListener(OnProfilePictureTakenListener
> lis) {
>                 onProfilePictureTakenListener = lis;
>         }
>
>         class SavePhotoTask extends AsyncTask<byte[], String, String> {
>
>                 @Override
>                 protected String doInBackground(byte[]... jpeg) {
>                         File photo = new 
> File(Environment.getExternalStorageDirectory(),
> "/.addMePictures/" + System.currentTimeMillis());
>                         if(photo.exists()) {
>                                 photo.delete();
>                         }
>                         try {
>                                 FileOutputStream fos = new 
> FileOutputStream(photo.getPath());
>                                 fos.write(jpeg[0]);
>                                 fos.close();
>                         } catch(IOException e) {
>                                 e.printStackTrace();
>                         }
>                         if(onProfilePictureTakenListener != null) {
>                                 
> onProfilePictureTakenListener.onProfilePictureTaken(photo);
>                         }
>                         return null;
>                 }
>
>         }
>
>         public interface OnProfilePictureTakenListener {
>                 public abstract void onProfilePictureTaken(File imgFile);
>         }
>
> }
>
> --------
>
> Thank you very much!
>
> //Kaloer

-- 
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to android-beginners@googlegroups.com
To unsubscribe from this group, send email to
android-beginners+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en

Reply via email to