有一段時間沒有使用從相冊選擇照片以及拍照功能了拐辽,正好這個項目用到了,就翻出原來的demo試了試佛吓,發(fā)現(xiàn)從相冊選擇照片的時候宵晚,回傳會出現(xiàn)“照片無法加載”的情況垂攘。上網找了找,發(fā)現(xiàn)是android版本的問題坝疼,sdk低于19時需要使用另一種方法搜贤。于是上網搜了搜,只需要在選擇照片的時候判斷一下即可钝凶,很簡單仪芒,如下代碼。
private void showPhoto1Dialog() {
String[] avatar = { "相冊", "拍照" };
ActionSheetDialog dialog = new ActionSheetDialog(this).builder()
.setCancelable(true).setTitle("操作")
.setCanceledOnTouchOutside(true);
dialog.setItems(avatar, new OnSheetItemClickListener() {
@Override
public void onClick(int which) {
if (which == 0) {
Intent intentFromGallery;
//當sdk版本低于19時使用此方法
if (Build.VERSION.SDK_INT < 19) {
intentFromGallery = new Intent(
Intent.ACTION_GET_CONTENT);
intentFromGallery.setType("image/*");
} else {
intentFromGallery = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
}
startActivityForResult(intentFromGallery,
IMAGEa_REQUEST_CODE);
} else if (which == 1) {
Intent intentFromCapture = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
// 判斷存儲卡是否可以用耕陷,可用進行存儲
if (hasSdcard()) {
PhotoAFile = new File(Environment
.getExternalStorageDirectory(),
IMAGEa_FILE_NAME);
intentFromCapture.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(PhotoAFile));
}
startActivityForResult(intentFromCapture,
CAMERa_REQUEST_CODE);
}
}
});
dialog.show();
}
上面只是選擇照片時的一小部分代碼掂名,由于這個demo在網上搜的話基本上是“爛大街”的寫法,別的地方沒什么區(qū)別哟沫。還有一點饺蔑,這個解決方法是我看到別人的,具體是誰的時間久了我忘記了嗜诀,所以沒有標注出處猾警,所以請原作者諒解或者聯(lián)系我標注,謝謝隆敢。好代碼发皿,大家分享。