2016-10-28 5 views
0

だから私は自分の携帯電話のギャラリーからロードImageViewに任意の画像を持っていると私は、コードがこのグライドライブラリ変換を適用するには? [Androidのメーカー]

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

ようにする必要があります私の問題をどのように知ることです

特定のグライド変換を適用したいですBitmapdrawableuriなど(それが何であれ)myimageviewから".load"になるため、グライドはそれが変換しようとしている画像を知っています".into"myimageview

答えて

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

しかし、あなたは私が間違っているイメージを読み込むと同時にそれを行いますか?なぜなら、onActivityResult voidからのみresultDataを取得するからです。それは私が写真を撮ったり画像を読み込んだのと同時に私がそれを適用しているように私に変換を決めることを許しません。そのため、mImageViewの画像を取得して、onActivityResultの外側にあるボタンを使用して変換を適用したい場合は、 –

+0

ボタンをクリックして変換を正しく表示しますか? – Puri

+0

変換を行うことを具体的に示すボタン。それだけで。一度画像がある場合は –