2011-02-09 158 views
4
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卡上的默认位置和/文件夹/文件,我也希望将照片存储在该位置。一旦我刷新屏幕使用此...Android - 如何压缩或缩小图像?

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); 

这刷新图像按钮,使用户可以看到他们已经拍摄的图像。但是,这看起来很大并且填满了屏幕。有什么办法可以压缩或缩小图像,以便用户能够以合理的尺寸看到它?谢谢

回答

1

你可以混淆ImageButton的scaleType属性(例如fitXY或cropCenter),并且通过将固定大小设置为LayoutPreferences(高度和宽度),您将全部设置好。

+0

设置布局和宽度帮助感谢 – Beginner 2011-02-09 09:46:10

17
Bitmap thumb = Bitmap.createScaledBitmap (BitmapFactory.decodeFile(photoPath), 96, 96, false); 

其中createScaledBitmap的第二个和第三个参数分别是宽度和高度。

http://developer.android.com/reference/android/graphics/Bitmap.html#createScaledBitmap%28android.graphics.Bitmap,%20int,%20int,%20boolean%29

编辑:现在发生,我认为你可以更快,更有效的方式做到这一点,采用B itmapFactory.OptionsinSampleSize选项:

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); 

这样,你甚至会节省更多的记忆和裁员应该花费更少的时间。

0

Android Library SiliCompressor为您提供了此功能来压缩图像,同时保持图像质量。