2016-10-28 1 views
0

J'ai une image dans un ImageView chargé de la galerie de mon téléphone et je veux appliquer certaine transformation GlideComment appliquer la transformation de la bibliothèque Glide? [Android Studio]

Le code doit être comme ça

Glide.with(MainActivity.this) 
    .load(current image) 
    .bitmapTransform(new CropCircleTransformation(MainActivity.this)) 
    .into(myimageview); 

Mon problème est de savoir comment pour obtenir le Bitmap, drawable, uri etc (tout ce qui fonctionne) de myimageview à ".load" cela, donc Glide sait que c'est l'image qu'il va transformer ".into"myimageview.

Répondre

0
import android.annotation.SuppressLint; 
import android.content.ContentValues; 
import android.content.Context; 
import android.content.CursorLoader; 
import android.content.Intent; 
import android.database.Cursor; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Matrix; 
import android.media.ExifInterface; 
import android.net.Uri; 
import android.provider.DocumentsContract; 
import android.provider.MediaStore; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 
import com.bumptech.glide.Glide; 
import com.bumptech.glide.load.engine.DiskCacheStrategy; 
import jp.wasabeef.glide.transformations.CropCircleTransformation; 

public class MainActivity extends AppCompatActivity { 
private static final int CAMERA_REQUEST = 1888; 
ImageView mimageView; 
String selectedImagePath; 
Uri mCapturedImageURI; 
int orientation; 
ExifInterface exif; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mimageView = (ImageView) this.findViewById(R.id.image_from_camera); 
    Button button = (Button) this.findViewById(R.id.take_image_from_camera); 

} 

public void takeImageFromCamera(View view) { 

    Intent intent = new Intent(); 
    intent.setType("image/*"); 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    startActivityForResult(Intent.createChooser(intent, "Select File"), CAMERA_REQUEST); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 

     selectedImagePath = getRealPathFromURI_API19(this, data.getData()); 
     Glide.with(MainActivity.this).load("file://" +selectedImagePath) 
       .bitmapTransform(new CropCircleTransformation(MainActivity.this)) 
       .thumbnail(0.5f) 
       .crossFade() 
       .diskCacheStrategy(DiskCacheStrategy.NONE) 
       .skipMemoryCache(true) 
       .into(mimageView); 
    } 


} 

@SuppressLint("NewApi") 
public static String getRealPathFromURI_API19(Context context, Uri uri){ 
    String filePath = ""; 
    String wholeID = DocumentsContract.getDocumentId(uri); 

    // Split at colon, use second item in the array 
    String id = wholeID.split(":")[1]; 

    String[] column = { MediaStore.Images.Media.DATA }; 

    // where id is equal to 
    String sel = MediaStore.Images.Media._ID + "=?"; 

    Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
      column, sel, new String[]{ id }, null); 

    int columnIndex = cursor.getColumnIndex(column[0]); 

    if (cursor.moveToFirst()) { 
     filePath = cursor.getString(columnIndex); 
    } 
    cursor.close(); 
    return filePath; 
} 
} 
+0

Mais vous faites cela en même temps que vous chargez une image ai-je tort? Parce que je peux le faire aussi simplement en obtenant le resultData MAIS SEULEMENT du void onActivityResult. Cela ne me permettrait pas de décider de la transformation car je l'appliquerais en même temps que je prends une photo ou charge une image. C'est pourquoi j'ai voulu obtenir l'image dans mImageView pour appliquer la transformation avec un bouton en dehors du vide onActivityResult –

+0

vous voulez montrer la transformation sur le bouton clic droit ..? – Puri

+0

Un bouton qui indique spécifiquement que vous allez effectuer une transformation. Seulement ça. Une fois qu'il y a un imagen bien sûr –