如何申请Glide图书馆转型? [Android Studio]

时间:2016-10-28 04:07:32

标签: android transformation android-glide

所以我在手机图库中加载了ImageView中的任何图片,我想应用某些Glide转换

代码应该是这样的

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

我的问题是知道如何从Bitmapdrawable获取urimyimageview".load"等(无论它是什么), Glide知道它将改变的图像是".into" myimageview

1 个答案:

答案 0 :(得分: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;
}
}