ビットマップ イメージの表示に問題があります。私のアプリでは、ユーザーが画像ビューをクリックすると、アラート ダイアログ プロンプトが表示され、カメラを使用して写真を撮るか、ファイルから写真を取得するかを選択できます。「画像」という名前の画像ビューがあります。ここに私の警告ダイアログリスナーがあります:
if(option == 0) // take a picture option
{
try
{
Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, Constants.PIC_FILENAME_PREFIX + System.currentTimeMillis() + Constants.PIC_FILENAME_SUFFIX);
mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);
captureIntent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, 2 * 1024 * 1024); // limit to 2MB data
startActivityForResult(captureIntent, CAMERA_CAPTURE);// start activity
}
catch (ActivityNotFoundException anfe)
{
String errorMessage = "It appears your device does not have camera..";
Toast.makeText(UploadPhoto.this, errorMessage, Toast.LENGTH_SHORT).show();
}
}
else if(option==1)
{
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_FROM_FILE);
}
そして以下は私の活動結果です:
public void ActivityResult(int request, int result, Intent intentdata)
{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPurgeable = true;
options.inInputShareable = true;
if(result ==RESULT_OK)
{
if(request==SELECT_FROM_FILE)
{
mCapturedImageURI = intentdata.getData();
}
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(mCapturedImageURI, projection, null, null, null);
if(null==cursor)
{
return;
}
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
mCapturedFilePath = cursor.getString(column_index);
stopManagingCursor(cursor);
cursor.close();
// compute the boundary first
options.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(mCapturedFilePath, options);
// get image from file
options.inSampleSize = ImageUtil.calculateInSampleSize(options, Constants.PIC_IMAGE_DISP_WIDTH, Constants.PIC_IMAGE_DISP_HEIGHT);
options.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeFile(mCapturedFilePath, options);
bitmap = Bitmap.createScaledBitmap(bitmap, Constants.PIC_IMAGE_DISP_WIDTH, Constants.PIC_IMAGE_DISP_HEIGHT, false);
image.setImageBitmap(bitmap);//I'm trying to change this imageview
}
}
ユーザーがオプションのいずれかをクリックしてファイルを取得または選択すると、imageView は変更されません。誰かお勧めはありますか?