2016-10-28 2 views
0

그래서 난 내 휴대 전화의 갤러리에서 넣은 ImageView에서 어떤 이미지를 가지고 있고 특정 글라이드 변환을 적용 할글라이드 라이브러리 변환을 적용하는 방법은 무엇입니까? [안드로이드 스튜디오]

코드는 내 문제는 방법을 알고있다이

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

같이해야한다 Bitmap, drawable, uri 등 (작동하는 모든 것)을 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 바깥 쪽의 버튼으로 변환을 적용하기 위해 이미지를 얻고 싶습니다. void –

+0

버튼을 오른쪽 클릭 할 때 변형을 표시하고 싶습니까? – Puri

+0

변환을 수행 할 것이라는 것을 나타내는 버튼입니다. 만. 물론 –

관련 문제