2012-04-01 20 views
1

私はこれを解決しようとしていますが、成功していません。撮影画像を保存

私は画像をキャプチャし、その画像をユーザに表示する本当にシンプルなアプリを持っています。問題は、日付がキャプチャされたときに画像を保存することですが、その代わりに画像に特定の名前を付けることです。ここで

は私のコードです:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    this.imageView = (ImageView)this.findViewById(R.id.imageView1); 
    Button photoButton = (Button) this.findViewById(R.id.button1); 
    photoButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      //intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 

      startActivityForResult(intent, CAMERA_REQUEST); 
     } 
    }); 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    System.gc(); 
    if (requestCode == CAMERA_REQUEST) { 
     Bitmap photo = (Bitmap) data.getExtras().get("data"); 
     imageView.setImageBitmap(photo); 

    } 
} 

誰かが私は追加して、どこイメージ名を設定するために必要なものを私に示すことができる場合、私はそれを本当に感謝します。

+1

ルック。 http://stackoverflow.com/questions/1910608/android-action-image-capture-intent – Imrane

+0

: [アンドロイドACTION_IMAGE_CAPTUREインテント] [1] [1]);これは参考にすることができ可能であれば、あなたの問題を解決している必要があります。 – Ishu

答えて

4

次のコードは、あなたの問題への解決策の一つである試してみてください::このリンクで

static Uri capturedImageUri=null; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    this.imageView = (ImageView)this.findViewById(R.id.imageView1); 
    Button photoButton = (Button) this.findViewById(R.id.button1); 
    photoButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
     Calendar cal = Calendar.getInstance(); 
File file = new File(Environment.getExternalStorageDirectory(), (cal.getTimeInMillis()+".jpg")); 
    if(!file.exists()){ 
    try { 
     file.createNewFile(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    }else{ 
     file.delete(); 
    try { 
     file.createNewFile(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 
    capturedImageUri = Uri.fromFile(file); 
    Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    i.putExtra(MediaStore.EXTRA_OUTPUT, capturedImageUri); 
    startActivityForResult(i, CAMERA_RESULT); 
     } 
    }); 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_REQUEST) { 
     //Bitmap photo = (Bitmap) data.getExtras().get("data"); 
     //imageView.setImageBitmap(photo); 
     try { 
    Bitmap bitmap = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver(), capturedImageUri); 
    imageView.setImageBitmap(bitmap); 
    } catch (FileNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
    } 
}