以下是我到目前为止所尝试的内容
onActivityResult()
@OverrIDepublic 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的缓存不同
解决方法 花了很多时间搞清楚如何删除GlIDe设置的图像并失败后,决定去老派并首先在手机中下载图像并在我的应用程序中将该图像设置为位图asynchtask下载图片
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); }}总结
以上是内存溢出为你收集整理的android – 删除Glide设置的图像并使用imageView.setImageBitmap()全部内容,希望文章能够帮你解决android – 删除Glide设置的图像并使用imageView.setImageBitmap()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)