увеличить размер снимков, сделанных камерой Android - PullRequest
0 голосов
/ 27 июля 2011

Мне удалось сделать снимок с помощью камеры SonyEricsson. Снимок выглядит нормально, и для этого я использовал альбомную ориентацию в своей деятельности.

Проблема в том, что сделанный снимок не является полноэкранным ... он занимает только 50% моего экрана, и я не могу увеличить его. Вот как я это сделал:

public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    Log.e(TAG, "onCreate");

    Bundle extras = getIntent().getExtras();

    getWindow().setFormat(PixelFormat.TRANSLUCENT);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.editphoto);
    mSurfaceView = (SurfaceView) findViewById(R.id.surface_camera);
    mSurfaceView.setOnClickListener(this);

    mSurfaceHolder = mSurfaceView.getHolder();
    mSurfaceHolder.addCallback(this);
    mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    mSurfaceHolder.setFixedSize(getWindow().getWindowManager()
            .getDefaultDisplay().getWidth(), getWindow().getWindowManager()
            .getDefaultDisplay().getHeight());


}

А вот мой surfaceChanged() метод:

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
        Log.e(TAG, "surfaceChanged");
        if (mPreviewRunning) {
            mCamera.stopPreview();
        }

        Camera.Parameters p = mCamera.getParameters();
        List<Size> sizes = p.getSupportedPictureSizes();

 System.out.println("Lista de parametrii este urmatoarea:"+sizes);
        Size   size = sizes.get(0);
      p.setPreviewSize(640, 480);
      p.setPictureSize(size.width,size.height);
      mCamera.setParameters(p);
        try {
            mCamera.setPreviewDisplay(holder);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        mCamera.startPreview();
        mPreviewRunning = true;
    }

Я пытаюсь получить список со всеми изображениями поддерживаемого размера, используя этот метод:

List<Size> sizes = p.getSupportedPictureSizes();

, который возвращает следующее:

[android.hardware.Camera$Size@65d4c50, android.hardware.Camera$Size@65d49ec, android.hardware.Camera$Size@50ddab8, android.hardware.Camera$Size@3fe4e00, android.hardware.Camera$Size@32ea628, android.hardware.Camera$Size@3be67b8, android.hardware.Camera$Size@27ef0c0, android.hardware.Camera$Size@27eefd0, android.hardware.Camera$Size@13f7860, android.hardware.Camera$Size@ef9a20]

Что я делаю, это зацикливаю этот список и устанавливаю размер моей картинки, чтобы получить больший размер:

     Size   size = sizes.get(0);
      p.setPictureSize(size.width,size.height);

Я также сделал: sizes.get(1), sizes.get(2), sizes.get(3) ..... sizes.get(8).

Теперь проблема в том, что когда я делаю:

          Size   size = sizes.get(0);
          p.setPictureSize(size.width,size.height);

мой экран становится черным, и через некоторое время я получаю эту ошибку в своей logcat:

WIN DEATH: null
Failed looking up window
java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@2b40d510 does not exist
at com.android.server.WindowManagerService.windowForClientLocked(WindowManagerService.java:8180)
 at com.android.server.WindowManagerService.windowForClientLocked(WindowManagerService.java:8171)
at com.android.server.WindowManagerService$WindowState$DeathRecipient.binderDied(WindowManagerService.java:7029)
at android.os.BinderProxy.sendDeathNotice(Binder.java:389)
at dalvik.system.NativeStart.run(Native Method)

И когда я пытаюсь: sizes.get(1), sizes.get(2), sizes.get(3) ..... sizes.get(8), это работает, но моя картинка выглядит так:

http://i53.tinypic.com/2ib2crn.png

Так что же мне делать, чтобы получить полноэкранное изображение? Спасибо

1 Ответ

0 голосов
/ 27 июля 2011

Я должен был установить ImageView, где я положил изображение, чтобы иметь width=fill_parent и height=fill_parent!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...