android写真取得
1.写真撮影の経路を取得する
カメラActivityから戻るとdataというBitmapオブジェクトが付きます.写真のサムネイルです.
次のコードを加えると、
dataという名前のオブジェクトは返されません.ただし、指定したパスで元の画像が保存されます.
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri
.fromFile(new File(Environment
.getExternalStorageDirectory(), "camera.jpg")));
2.撮影後のdataオブジェクトを取得する
Bundle extras = data.getExtras();
Bitmap myBitmap=null;
if(null!=extras){
Log.i("bb","isNull:"+(null==extras));
if(myBitmap!=null){
myBitmap.recycle();
}
myBitmap = (Bitmap) extras.get("data");
}else{
Uri uri = data.getData();
if (uri != null) {
myBitmap.recycle();
myBitmap = BitmapFactory.decodeFile(uri.getPath());
}
}
if (myBitmap!=null) {
//ImageView view=new ImageView(mContext);
mImageView.setImageBitmap(myBitmap);
}
3.例
private ImageView imageView;
カメラActivityから戻るとdataというBitmapオブジェクトが付きます.写真のサムネイルです.
次のコードを加えると、
dataという名前のオブジェクトは返されません.ただし、指定したパスで元の画像が保存されます.
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri
.fromFile(new File(Environment
.getExternalStorageDirectory(), "camera.jpg")));
2.撮影後のdataオブジェクトを取得する
Bundle extras = data.getExtras();
Bitmap myBitmap=null;
if(null!=extras){
Log.i("bb","isNull:"+(null==extras));
if(myBitmap!=null){
myBitmap.recycle();
}
myBitmap = (Bitmap) extras.get("data");
}else{
Uri uri = data.getData();
if (uri != null) {
myBitmap.recycle();
myBitmap = BitmapFactory.decodeFile(uri.getPath());
}
}
if (myBitmap!=null) {
//ImageView view=new ImageView(mContext);
mImageView.setImageBitmap(myBitmap);
}
3.例
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Hide the window title.
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
imageView = (ImageView) this.findViewById(R.id.preview);
Button button = (Button) this.findViewById(R.id.cameraButton);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri
.fromFile(new File(Environment
.getExternalStorageDirectory(), "camera.jpg")));
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
startActivityForResult(intent, 0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0 && resultCode == Activity.RESULT_OK) {
this.imageView.setImageDrawable(Drawable.createFromPath(new File(
Environment.getExternalStorageDirectory(), "camera.jpg")
.getAbsolutePath()));
// for(String s:bundle.keySet()){
// Log.v("cam.demo", s);
// }
Log.v("cam.demo", "====>" + data);
}
}
}