2013-03-17 97 views
2

我正在製作一個應用程序,您可以點擊一個按鈕並拍攝一張照片,然後在拍攝照片後,我想在圖像視圖中顯示它。如何在圖像視圖中顯示圖像的原始大小

我使用此代碼爲:

@Override 
public void onActivityCreated (Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState);  

    Button b = (Button) getView().findViewById(R.id.button1); 
    b.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) {   
      try { 
       Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri); 
       startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 
      } catch(ActivityNotFoundException e){ 
       Toast.makeText(getActivity(), "Your device does not have a camera", Toast.LENGTH_SHORT).show(); 
      }  
     }   
    }); 

    send = (Button) getView().findViewById(R.id.button2); 
    send.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getActivity(), "Uploading image...", Toast.LENGTH_LONG).show(); 
      new uploadtoserver().execute(); 
     }   
    }); 
} 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_PIC_REQUEST) { 
     if (data != null) { 
      Bitmap thumbnail = (Bitmap) data.getExtras().get("data");    
      ImageView image = (ImageView) getView().findViewById(R.id.imageView1); 
      //image.setImageBitmap(thumbnail); 

      send.setVisibility(Button.VISIBLE); 

      // CALL THIS METHOD TO GET THE URI FROM THE BITMAP 
      Uri tempUri = getImageUri(getActivity(), thumbnail); 
      // CALL THIS METHOD TO GET THE ACTUAL PATH 
      finalFile = new File(getRealPathFromURI(tempUri)); 

      Bitmap bmImg = BitmapFactory.decodeFile(finalFile.toString()); 

      image.setImageBitmap(bmImg); 

      System.out.println(finalFile); 
     } 
    } 
} 

和這裏是ImageView的的XML部分

但它是表示圖像裁剪和難看(不是原始尺寸)

如何讓它在imageview中顯示照片的原始大小?

回答

0

Intent extra中返回的圖像數據是捕獲圖像的縮小版本,適用於縮略圖。全尺寸圖像將寫入您在請求中作爲EXTRA_OUTPUT Uri傳遞的文件位置。如果你想使用完整的圖像本身,你需要看看那裏。

請記住,Android只保證一個或另一個,所以事實上,您傳遞的是EXTRA_OUTPUT的位置,但也要查找在「數據」字段中返回的結果,它不適用於所有設備。這不是框架保證你的(docs for more info)。當你給出時,你應該只希望從你在請求中提出的Uri中讀取文件。如果圖像沒有被寫入,那是因爲相機應用程序無法訪問您提供的Uri位置,它必須是到公共位置(如外部存儲,而不是應用程序專用內部存儲)的有效路徑。

相關問題