Permettre à l'utilisateur de rogner l'image
Je vais avoir un moment difficile de déterminer comment permettre à l'utilisateur de recadrer l'image.
Je voudrais donner un bitmap variable avec bitmap chargée de recadrer l'image avant de la définir comme fond d'écran. Mais je ne suis pas le faire... c'est Ici que j'ai essayé.
Première version. = Fonctionne comme prévu, MAIS l'image renvoyée est en faible résolution. La modification de la sortie à une valeur plus élevée n'aide pas. Comme je l'ai vu dans certains post, il n'est pas recommandé d'utiliser la caméra comme tous les appareils prennent en charge ce.
Intent intent = new Intent("com.android.camera.action.CROP");
String path = Images.Media.insertImage(context.getContentResolver(), loaded,null, null);
Uri uri = Uri.parse(path);
intent.setData(uri);
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 300);
intent.putExtra("outputY", 300);
intent.putExtra("noFaceDetection", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, 2);
Seconde. Charge jusqu'à l'image de sélecteur, et de la culture par la suite. Comment puis-je configurer pour charger des cultures directement sur mon image? Tout comme dans la version 1
Intent photoPickerIntent = new Intent(MediaStore.ACTION_PICK);
photoPickerIntent.setData(uri);
photoPickerIntent.putExtra("crop", "true");
photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
startActivityForResult(photoPickerIntent, 2);
Et onActivity résultat
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) { return; }
if(requestCode == 2) {
Bundle extras = data.getExtras();
if(extras != null ) {
Bitmap photo = extras.getParcelable("data");
loaded = photo;
}
WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext());
try {
myWallpaperManager.setBitmap(loaded);
} catch (IOException e) {}
}
}
Je ne sais pas qu'elles sont les bonnes méthodes pour faire de ce fait, mais j'espère que quelqu'un pourrait me diriger dans la bonne direction. Qui, pourquoi, et comment les utiliser.
Mise à jour: je suis toujours en attente de quelqu'un pour montrer comment le faire correctement, les réponses ci-dessous sont travail mais le retour des images en faible résolution, de sorte qu'ils ne sont pas une option pour utiliser
Je reviens avec votre solution d'utiliser ce lien github.com/edmodo/cropper ,C'est un projet de démonstration du code de la sorcière résoudre votre problème.
Juste essayer ce code,je sais, je ne suis pas de mal!!
Je vous remercie. Je vais essayer celui-là, alors j'ai du temps libre pour que
OriginalL'auteur Datenshi | 2013-02-27
Vous devez vous connecter pour publier un commentaire.
Ok Cher Ici j'ai mis Tout mon code de découpage de l'Image En Android.
Cette variable Globale.
C'est la une autre Classe de la sorcière utiliser pour trouver des Cultures de l'Activité de l'Intention dans l'Application.
CropOption Classe.
c'est utiliser Pour l'Affichage de la Liste.
CropOptionAdapter
Fichier De Mise En Page Pour CropOptionAdapter
C'est le resultActivity.la sorcière de donner à la culture de l'image.
//Faire Ce Type, C'est le travail sur mon app live.
genHelper.showToast("Pas de Culture de l'Activité dans Ce");
est ma Classe générale d'affichage à l'aide de toast message d'Erreur et le Journal.
Bestof De La Chance.
chers juste utiliser mon code, c'est le travail dans mon app live sans aucun problème.cher, et je vous donne mon code complet.mettre en œuvre après les dire.et un autre ce que je gérer cette chose si pas de toute culture trouvés affichage de pain grillé.il suffit de vérifier puis de mettre en œuvre et d'examiner ensuite.
Je sais que ça peut être mon mauvais usage. Je suis à la recherche en elle. Une question, quel type d'uri-vous passer à doCrop fonction? actuellement j'essaie de passer url de site web, ou de l'image doit être mis en cache dans le téléphone
Chers juste attendre quelques minutes, je réponds à la réponse
si votre image est de stocker dans sdcard dans le dossier images puis donner ce type de chemin, c'est le travail perfecty de l'essayer.Chemin d'accès au fichier===>/mnt/sdcard/Photos/test02.png
OriginalL'auteur Zala Janaksinh
D'abord, les variables:
Avant de prendre une photo à partir de votre Appareil photo ou votre Galerie, mettre votre image dans un Uri (imageUri) , l'utilisation d'une méthode appelée ici "performCrop()" à l'intérieur de try/catch:
Sur la méthode onActivityResult:
consultez ici stackoverflow.com/a/19567921/1945754
OriginalL'auteur rsicarelli
Comme mentionné dans les mêmes fils, Android n'est pas un fonctionnaire de la récolte de l'intention
(https://commonsware.com/blog/2013/01/23/no-android-does-not-have-crop-intent.html), donc je voudrais rester loin de l'aide de "com.android.de la caméra.d'action.Des CULTURES".
Cependant, au moment où cette question a été posté, Android a ajouté une nouvelle API de Kitkat (niveau 19), ce qui permet d'invoquer un crop-ce-image-et-définir comme papier peint de l'Activité. Voir WallpaperManager.getCropAndSetWallpaperIntent(), ce qui pourrait répondre à votre question initiale.
OriginalL'auteur Joseph Johnson
J'ai aussi eu le problème à l'aide de l'appareil photo et
ACTION_PICK
que l'image renvoyée est très faible en dépit de la sécurité a adopté la résolution étant beaucoup plus grands. J'ai eu autour de ce stockage de la culture de l'image dans un fichier temporaireet de l'appel de l'intention comme cet
puis dans
onActivityResult
J'ai construit le code ci-dessus à partir du haut de ma tête et n'a pas fait de compiler tout ça. Mais les bases sont correctes et vous devriez obtenir le coup 😉
OriginalL'auteur Thrakbad