2011-08-31 124 views
6

ビルドインAndroidカメラで作った画像でImageViewを更新したいと考えています。私は写真を取得した後イメージを取得するAndroidでカメラで撮影した画像のUri +サムネイル

void getPhoto() { 
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     startActivityForResult(intent, TAKE_PICTURE); 
    } 

: 私は、次のコードを使用し

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == TAKE_PICTURE) { 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      ImageView photoView = (ImageView) findViewById(R.id.photoId); 
      photoView.setImageBitmap(photo); 
      } 
     } 

しかし、どんなに私が唯一の私が作った写真のサムネイルを取得する何このコードで - 私の質問はサムネイルではなく元のイメージで作業するために作成した写真のUriをどのように取得できますか?

ps。私は実際に写真のサムネイルが必要ですが、元の写真のウリも必要です。

答えて

4

私は自分自身のURIをどこに保存するかを指定するために入れました。そして、どこにあるのかわかりません。他の方法はありません。 ファイルのフィールドをいくつか作成します。

private String imagePath = "/sdcard/Camera/test.jpg"; 
private File originalFile; 

ファイルを初期化します。

ここで、意図を持ってカメラアプリを起動し、URIを余分に渡します。 onActivityResult(中

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    Uri outputFileUri = Uri.fromFile(originalFile); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
    startActivityForResult(intent, RESULT_CAPTURE_IMAGE); 

)ですから、今createBitmapを使用してビットマップを作成したり、あなたが

+3

を必要とするものは何でもするためのファイルパスを使用することができますURI

protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == RESULT_CAPTURE_IMAGE && resultCode == Activity.RESULT_OK) { mBitmap = BitmapFactory.decodeFile(originalImagePath, BitmapFactoryOptions); //set whatever bitmap options you need. 

を抽出また、それはハードコードに良い習慣ではありません/ sdcard /でuriを設定するには、環境変数にgetterを使用する必要があります。 –

+0

データのインテントがnullの場合、サムネイルは取得できません。あなたはちょうどフルサイズの写真からそれを作成することができます –

関連する問題