android – 删除Glide设置的图像并使用imageView.setImageBitmap()

android – 删除Glide设置的图像并使用imageView.setImageBitmap(),第1张

概述我有一个片段,首先使用Glide将图像设置为imageView(从互联网上获取图像网址).然后在点击图像视图时,可以从图库或相机意图中选择新图像.问题是当我尝试设置从OnActivityResult()获得的位图时.图像实际上设置但滑动重叠.我需要显示从相机/画廊捕获的图像.任何帮助表示赞赏,如果可以使用毕加索或任何其他图书馆完成,请提出建议.   以下是我到目前为止所尝试的内容 onActivi 我有一个片段,首先使用GlIDe将图像设置为imageVIEw(从互联网上获取图像网址).然后在点击图像视图时,可以从图库或相机意图中选择新图像.问题是当我尝试设置从OnActivityResult()获得的位图时.图像实际上设置但滑动重叠.我需要显示从相机/画廊捕获的图像.任何帮助表示赞赏,如果可以使用毕加索或任何其他图书馆完成,请提出建议.
  以下是我到目前为止所尝试的内容

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()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1123942.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存