ImageButton avatarButton = (ImageButton) findViewById(R.id.ImageButton_Avatar);
avatarButton.setImageResource(R.drawable.avatar);
strAvatarFilename = "Image.jpg";
final Uri imageUriToSaveCameraImageTo = Uri.fromFile(new File(Environment.getExternalStorageDirectory()+"/Folder/"+strAvatarFilename));
avatarButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent pictureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
pictureIntent.putExtra( MediaStore.EXTRA_OUTPUT, imageUriToSaveCameraImageTo );
startActivityForResult(Intent.createChooser(pictureIntent, strAvatarPrompt), TAKE_AVATAR_CAMERA_REQUEST);
Editor editor = Preferences.edit();
editor.putString(PREFERENCES_AVATAR, imageUriToSaveCameraImageTo.getPath());
editor.commit();
}
});
我有这个代码。它拍摄一张照片,然后将其存储在两个位置,SD 卡上的默认位置和我希望将照片存储在的 /folder/ 文件。拍摄后我用这个刷新屏幕......
ImageButton avatarButton = (ImageButton) findViewById(R.id.ImageButton_Avatar);
String strAvatarUri = Preferences.getString(PREFERENCES_AVATAR, "");
Uri imageUri = Uri.parse(strAvatarUri);
avatarButton.setImageURI(null);
avatarButton.setImageURI(imageUri);
这会刷新图像按钮,以便用户可以看到他们拍摄的图像。然而,它看起来很大并且填满了屏幕。有什么方法可以压缩或缩小图像,以便用户可以以合理的尺寸查看它?谢谢
Bitmap thumb = Bitmap.createScaledBitmap (BitmapFactory.decodeFile(photoPath), 96, 96, false);
其中 createScaledBitmap 的第二个和第三个参数分别是宽度和高度。
http://developer.android.com/reference/android/graphics/Bitmap.html#createScaledBitmap%28 android.graphics.Bitmap,%20 int,%20 int,%20 boolean%29
编辑:现在我想到你可以使用 B 以更快、更有效的方式做到这一点itmapFactory.Options
和inSampleSize
option:
BitmapFactory.Options opts = new BitmapFactory.Options ();
opts.inSampleSize = 2; // for 1/2 the image to be loaded
Bitmap thumb = Bitmap.createScaledBitmap (BitmapFactory.decodeFile(photoPath, opts), 96, 96, false);
这样您将节省更多内存,并且缩小规模所需的时间也更少。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)