【发布时间】:2014-11-04 17:32:12
【问题描述】:
我想像这样用安卓相机拍照:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
this.startActivityForResult(intent, Globals.REQUEST_CODE_CAMERA)
并将其存储在 ImageView 中:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == Globals.REQUEST_CODE_CAMERA) {
if(resultCode == RESULT_OK) {
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.get("data");
this.imageViewPhoto.setImageBitmap(bitmap);
}
}
}
我的 ImageView 是这样配置的:
<ImageView
android:id="@+id/nfcresult_imageview_photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
android:adjustViewBounds="true"
android:clickable="true"
android:contentDescription="@string/imageview_photo_description" />
一切正常,但 ImageView 上显示的照片比 相机拍摄的照片。我想做的是在我的 ImageView 并将 OnClickListener 添加到 ImageView 以打开一个对话框 它以原始尺寸和分辨率显示原始照片。它不能 很难做到,但我真的不知道怎么做。
要创建对话框并显示照片,我这样做:
ImageView clone = new ImageView(this);
clone.setImageBitmap(((BitmapDrawable)this.imageViewPhoto.getDrawable()).getBitmap());
DialogManager.showImageDialog(this, this.getResources().getString(R.string.title_photo), clone);
showImageDialog:
public static void showImageDialog(Context context, String title, ImageView imageView) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(title);
builder.setCancelable(false);
builder.setView(imageView);
builder.setPositiveButton(context.getResources().getString(R.string.button_back), new DialogInterface.OnClickListener() {
/**
*
*/
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
对话框现在显示照片,其中照片的大小存储在 imageView 中 但我想以原始尺寸和原始分辨率显示原始照片 但正如我已经说过的,ImageView 应该显示原始版本的较小版本 照片。
我怎样才能做到这一点?
【问题讨论】:
-
感谢您提供的链接...但那里有很多已弃用的东西...
-
如果您尝试将捕获的位图存储为您的活动/片段(或其他类)的字段,然后在对话框中显示该位图?