【发布时间】:2014-05-16 07:08:27
【问题描述】:
我正在使用此代码拍照和拍照。当设备有 SD 卡但没有 SD 卡时它工作正常,它给我敬酒请插入 SD 卡。有什么解决办法吗?
这是我的代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
Uri chosenImageUri = data.getData();
String imagepath = getpath(chosenImageUri);
extension = imagepath.substring(imagepath.lastIndexOf(".")+1);
Bitmap bitmap = BitmapFactory.decodeFile(imagepath);
saveToInternalSorage(bitmap, "image1");
Constant._profilePhotoUrl = Constant.convertBitmapToBase64(bitmap);
if(flag == 1){
_uploadImageView1.setImageBitmap(Bitmap.createScaledBitmap(
bitmap,100,100,false));
_uploadImageView1.setScaleType(ImageView.ScaleType.FIT_XY);
_chooseLayout.setVisibility(View.GONE);
_footerLayout.setVisibility(View.VISIBLE);
}else if (flag == 2) {
_uploadImageView2.setImageBitmap(Bitmap.createScaledBitmap(
bitmap,100,100,false));
_uploadImageView2.setScaleType(ImageView.ScaleType.FIT_XY);
_footerLayout.setVisibility(View.VISIBLE);
_chooseLayout.setVisibility(View.GONE);
}else if (flag == 3) {
_uploadImageView3.setImageBitmap(Bitmap.createScaledBitmap(
bitmap,100,100,false));
_uploadImageView3.setScaleType(ImageView.ScaleType.FIT_XY);
_footerLayout.setVisibility(View.VISIBLE);
_chooseLayout.setVisibility(View.GONE);
}
} else {
Toast.makeText(UploadFileActivity.this, "Unable to get Image",
Toast.LENGTH_SHORT).show();
}
break;
case 2:
if (resultCode == RESULT_OK) {
try {
Bitmap bitmap = (Bitmap) data.getExtras().get("data");
/*_uploadImageView1.setImageBitmap(Bitmap
.createScaledBitmap(bitmap, 120, 120, false));*/
if(flag == 1){
_uploadImageView1.setImageBitmap(Bitmap.createScaledBitmap(
bitmap,100,100,false));
_uploadImageView1.setRotation(90);
_uploadImageView1.setScaleType(ImageView.ScaleType.FIT_XY);
_chooseLayout.setVisibility(View.GONE);
_footerLayout.setVisibility(View.VISIBLE);
Constant._profilePhotoUrl = Constant.convertBitmapToBase64(bitmap);
}else if (flag == 2) {
_uploadImageView2.setImageBitmap(Bitmap.createScaledBitmap(
bitmap,100,100,false));
_uploadImageView2.setRotation(90);
_uploadImageView1.setScaleType(ImageView.ScaleType.FIT_XY);
_chooseLayout.setVisibility(View.GONE);
_footerLayout.setVisibility(View.VISIBLE);
}else if (flag == 3) {
_uploadImageView3.setImageBitmap(Bitmap.createScaledBitmap(
bitmap,100,100,false));
_uploadImageView3.setRotation(90);
_uploadImageView3.setScaleType(ImageView.ScaleType.FIT_XY);
_chooseLayout.setVisibility(View.GONE);
_footerLayout.setVisibility(View.VISIBLE);
}
} catch (OutOfMemoryError e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
} else {
Toast.makeText(UploadFileActivity.this, "Unable to get Image",
Toast.LENGTH_SHORT).show();
}
break;
}
}
private String getpath(Uri chosenImageUri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(chosenImageUri, projection, null, null,
null);
int column = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column);
}
【问题讨论】:
-
亲爱的你调试你的代码了吗??
-
那么请调试你的代码亲爱的你可以自己找到问题亲爱的在你尝试存储数据的地方逐行调试你的代码并找到你得到错误的那一行
-
因为这个调试习惯你可以学到更多关于代码的知识,因为一个好的程序员也是一个好的调试者:)
-
哦,你在哪里出错了
-
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
标签: android image local-storage