2017-02-17 41 views
3

У меня есть фрагмент, где сначала изображение устанавливается в imageView с использованием Glide (URL-адрес изображения, полученный из Интернета). Затем, щелкнув по изображению, можно выбрать новое изображение из галереи или цели камеры. проблема в том, что я пытаюсь установить растровое изображение, которое я получаю из OnActivityResult(). На самом деле изображение накладывается, но накладывается скольжением. Мне нужно показать изображение, снятое с камеры/галереи. Любая помощь приветствуется, также если это можно сделать с помощью Picasso или любой другой библиотеки, пожалуйста, предложите это. Ниже то, что я пытался до сих порУдалить изображение, установленное с помощью Glide и использовать imageView.setImageBitmap()

в onActivityResult()

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 

    if (resultCode == Activity.RESULT_OK) 
    { 
     if (requestCode == SELECT_FILE) 
      onSelectFromGalleryResult(data); 
     else if (requestCode == REQUEST_CAMERA) 
      // onCaptureImageResult((Bitmap) data.getExtras().get("data")); 
      onCaptureImageResult(data); 
    } 
} 

private void onCaptureImageResult(Intent data) 
{ 
    if (data != null) 
    { 
     mImageUri = Uri.parse("file://" + data.getStringExtra(CameraConfiguration.Arguments.FILE_PATH)); 
    } 

    try 
    { 
     bitmap_image = MediaStore.Images.Media.getBitmap(mContext.getContentResolver(), mImageUri); 
     ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
     bitmap_image.compress(Bitmap.CompressFormat.JPEG, 60, bytes); 

     bitmap_image = Bitmap.createScaledBitmap(bitmap_image, (int) (bitmap_image.getWidth() * 0.5), (int) (bitmap_image.getHeight() * 0.5), true); 

     ExifInterface ei = new ExifInterface(data.getStringExtra(CameraConfiguration.Arguments.FILE_PATH)); 
     int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED); 

     switch (orientation) 
     { 
      case ExifInterface.ORIENTATION_ROTATE_90: 
       bitmap_image = (SnappyUtils.rotateImage(bitmap_image, 90)); 
       break; 

      case ExifInterface.ORIENTATION_ROTATE_180: 
       bitmap_image = (SnappyUtils.rotateImage(bitmap_image, 180)); 
       break; 

      case ExifInterface.ORIENTATION_ROTATE_270: 
       bitmap_image = (SnappyUtils.rotateImage(bitmap_image, 270)); 
       break; 

      case ExifInterface.ORIENTATION_NORMAL: 

      default: 
       break; 
     } 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
     Log.d("exception", e.toString()); 
    } 
    ////////////////////// it is showing on iv_logo2 as expected as it does not has anything set by glide////////////////////////////////////////////////////////////////// 
    iv_logo.setBackground(null); 
    iv_logo.setImageBitmap(bitmap_image); 
    iv_logo2.setImageBitmap(bitmap_image); 

    ///////////////////////////tried added this by seeing other SO posts ////////////////////////////////////////////////////////////////// 
    Glide.with(mContext) 
      .load(mImageUri) 
      .signature(new StringSignature(String.valueOf(System.currentTimeMillis()))) 
      .diskCacheStrategy(DiskCacheStrategy.NONE) 
      .skipMemoryCache(true) 
      .into(iv_logo); 
} 

Также обратите внимание, что это не та же самая проблема, как удаление кэша из Glide

ответ

1

Потратив много времени выяснить, как удалить изображение, установленное с помощью Glide, и неудачи, решил пойти старую школу и первую загрузку изображений в телефоне и установить это изображение как растровое изображение в моем приложении

asynchtask к download image

private class GetImages extends AsyncTask<Object, Object, Object> 
{ 
    private String requestUrl, imagename_; 
    private ImageView view; 
    private Bitmap bitmap; 
    private FileOutputStream fos; 

    private GetImages(String requestUrl, ImageView view, String _imagename_) 
    { 
     this.requestUrl = requestUrl; 
     this.view = view; 
     this.imagename_ = _imagename_; 
    } 

    @Override 
    protected Object doInBackground(Object... objects) 
    { 
     try 
     { 
      URL url = new URL(requestUrl); 
      URLConnection conn = url.openConnection(); 
      bitmap = BitmapFactory.decodeStream(conn.getInputStream()); 
     } 
     catch (Exception ex) 
     { 
      ex.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Object o) 
    { 
     view.setImageBitmap(bitmap); 
    } 
} 
0

обновления кода редактирования:

iv.logo.setBackground(null); 

к:

iv.logo.setImageBitmap(null); 
+0

не работает, вы знаете, как удалить изображение, установленное с помощью скольжения? – Nilabja

 Смежные вопросы

  • Нет связанных вопросов^_^