12
votes

Comment recadrer l'image analysée dans Android?

Je mesure un site Web pour afficher le contenu d'une URL, dans la mesure où certaines images sont là. Je veux recadrer les images qui sont analysées du site. Je me lance vraiment à ce sujet, quelqu'un peut-il m'aider à ce sujet?


1 commentaires

La meilleure bibliothèque que j'ai trouvée dans les images de recadrage était Android-Image-Cropper . Voir ce Répondre .


4 Réponses :


23
votes

Je suppose que vous avez déjà "obtenu" les images du site Web et souhaitez redimensionner plutôt que récolter? C'est à dire. Créez des vignettes.

Si tel est le cas, vous pouvez utiliser ce qui suit: xxx


3 commentaires

fonctionne très bien. J'ai une question cependant: la classe bitmap est-elle en train de changer sa taille quand elle est mutable? Ou ne permet-il-t-il que de modifier ses données? Si cela peut changer sa taille, que feriez-vous à votre code pour que cela évite de créer une nouvelle bitmap?


Juste fyi, il n'est pas nécessaire de créer un bitmap redimensionné. Vous pouvez simplement définir la matrice dans l'imageView, puis définir le bitmap. L'imageView appliquera la matrice sur le bitmap.


Celui-ci est une échelle, pas la culture ... Celui-ci n'est pas vraiment exactement.



-3
votes
<ImageView  android:id="@+id/title_logo"
            android:src="@drawable/logo"
            android:scaleType="centerCrop" android:padding="4dip"/>

0 commentaires

2
votes

Le gestionnaire de contacts Android EditContactActivity utilise Intention (" com.android.camera.acte.crop ")

Ceci est un exemple de code: xxx

puis, startactivitywithresult () sur connu à l'utilisateur appuyé ok ou < Strong> Annuler . Dans le premier cas, l'image recadrée sera enregistrée dans uri .


2 commentaires

Bonne idée mais "com.android.camera.acte.crop" n'est pas officiel et pourrait ne pas travailler sur certains téléphones.


Y a-t-il une version officielle?



3
votes

Best Link github -> AndroidimageCropa

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    photoPicker();
}

private void photoPicker() {
    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent, 1);
}

private void crop(Uri photoUri) {
    Intent intent = new Intent("com.android.camera.action.CROP");
    intent.setData(photoUri);
    intent.putExtra("outputX", 200);
    intent.putExtra("outputY", 200);
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    intent.putExtra("scale", true);
    intent.putExtra("return-data", true);
    startActivityForResult(intent, RESULT_CROP);
}

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    if (resultCode == RESULT_OK) {
        Uri photoUri = intent.getData();
        if (photoUri != null) {
            Log.i("TAG", "Start Crop!!");
            crop(photoUri);
        }
    } else if (resultCode == RESULT_CROP) {
        Toast.makeText(this, "Image crop", Toast.LENGTH_SHORT).show();
    }
}


0 commentaires