Android - comment compresser ou réduire la taille d'une image?
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();
}
});
J'ai ce code. Il prend une photo, puis la stocke dans deux lieux, l'emplacement par défaut sur la carte sd et le dossier /fichier/je veux la photo pour être stockées dans aussi. Une fois pris, je rafraîchissement de l'écran à l'aide de cette...
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);
Cette actualise le bouton image de sorte que l'utilisateur peut voir l'image qu'ils ont prises. Toutefois, cela semble très grand et remplit l'écran. Est il possible que je peux compresser ou de réduire la taille de l'image de sorte que l'utilisateur peut voir à une taille raisonnable? grâce
OriginalL'auteur Beginner | 2011-02-09
Vous devez vous connecter pour publier un commentaire.
Vous pouvez jouer avec les ImageButton de scaleType propriétés (à fitXY par exemple, ou cropCenter), et en définissant une taille fixe à LayoutPreferences (hauteur et largeur) que vous serez tous ensemble.
Mais de cette façon, vous aurez la pleine bitmap chargé en mémoire. Si vous le faites dans la façon dont je l'ai suggéré, vous charger la totalité du bitmap, créer la version allégée et plus tard, le chargé pleine bitmap obtient le garbage collector.
s'il vous plaît dites comment "créer la version allégée"
et Comment, voir ma réponse ci-dessous.
OriginalL'auteur Nacho L.
Où les deuxième et troisième paramètres de createScaledBitmap sont la largeur et la hauteur respectivement.
http://developer.android.com/reference/android/graphics/Bitmap.html#createScaledBitmap%28android.graphics.Bitmap,%20int,%20int,%20boolean%29
EDIT: Il m'est apparu que vous pouvez le faire, plus rapide, plus efficace, à l'aide de B
itmapFactory.Options
et lainSampleSize
option:De cette façon, vous permettra d'économiser encore plus de mémoire et de la réduction des effectifs devrait prendre moins de temps.
OriginalL'auteur Shade
Android Bibliothèque SiliCompressor fournir cette fonctionnalité pour vous de compresser vos images tout en gardant la qualité de l'image.
OriginalL'auteur Senator