2011-07-27 40 views
0

我成功地使用SonyEricsson的相機拍攝了一張照片。拍攝的照片看起來很好,通常情況下,我用景觀視圖來拍攝我的活動。增加用Android相機拍攝的照片的大小

問題是,拍攝的照片不是全屏幕......它只能拍攝我屏幕的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(); 

其返回如下:

[[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]] 

我要做的就是循環列表和設置我的圖片的大小,以獲得更大的尺寸:

 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 [email protected] 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

那麼究竟是什麼應該怎樣做才能得到一個全屏幕的畫面?謝謝

回答

0

我必須設置在那裏我把畫有width=fill_parentheight=fill_parent的ImageView的!

相關問題