当前位置: 代码迷 >> Android >> 照相后获取不了图片
  详细解决方案

照相后获取不了图片

热度:25   发布时间:2016-05-01 10:03:03.0
拍照后获取不了图片!
做了一个图片上传的程序,
在模拟器里调试:拍照后获得的照片不是刚刚拍的那张,
本地选定的图片可以获得选中图片!

在HTC One x里测试:
拍照和本地都获取不了图片!不知道是什么问题:



ShareActivity.java
public class ShareActivity extends Activity implements Serializable {

public static final int SELECT_PIC_BY_TACK_PHOTO = 1;// Camera
public static final int SELECT_PIC_BY_PICK_PHOTO = 2;// Gallery
// path-KEY
public static final String SAVED_IMAGE_DIR_PATH = "photo_path";
private static final String TAG = "ShareActivity";

// path
private String picPath;
private Intent lastIntent;
private Uri photoUri;

private RelativeLayout layout1;
private RelativeLayout layout2;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_share);

layout1 = (RelativeLayout) this.findViewById(R.id.upload_photo);
layout2 = (RelativeLayout) this.findViewById(R.id.upload_gallery);
lastIntent = getIntent();

layout1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
takePhoto();
}
});
layout2.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
pickPhoto();
}
});
}

private void takePhoto() {

String SDState = Environment.getExternalStorageState();
if (SDState.equals(Environment.MEDIA_MOUNTED)) {

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

ContentValues values = new ContentValues();
photoUri = this.getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(intent, SELECT_PIC_BY_TACK_PHOTO);
} else {
Toast.makeText(this, R.string.takePhoto_msg, Toast.LENGTH_LONG)
.show();
}
}

private void pickPhoto() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, SELECT_PIC_BY_PICK_PHOTO);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  相关解决方案