Android图片视图会使应用变慢

Android图片视图会使应用变慢,第1张

概述在我的应用程序中,我有一个ImageView.在添加该ImageView之前,该应用程序运行平稳.现在它会抛出ANR.图像以base64编码字符串形式保存在数据库中,并使用以下代码解码为位图并加载到imageview中:imageView.setImageBitmap(bitmap);位图的转换以及将位图应用于ImageView的所有这些

在我的应用程序中,我有一个ImageVIEw.在添加该ImageVIEw之前,该应用程序运行平稳.现在它会抛出ANR.

图像以base 64编码字符串形式保存在数据库中,并使用以下代码解码为位图并加载到imagevIEw中:

imageVIEw.setimageBitmap(bitmap);

位图的转换以及将位图应用于ImageVIEw的所有这些 *** 作都是在AsyncTask中完成的:

class BitmapWorkerTask extends AsyncTask<Integer, VoID, Bitmap> {    private final WeakReference<ImageVIEw> imageVIEwReference;    private String data = "";    public BitmapWorkerTask(ImageVIEw imageVIEw, String data) {        imageVIEwReference = new WeakReference<ImageVIEw>(imageVIEw);        this.data = data;    }    @OverrIDe    protected Bitmap doInBackground(Integer... params) {        byte[] decodedString = Base64.decode(data, Base64.DEFAulT);        BitmapFactory.Options options=new BitmapFactory.Options();        options.inPurgeable = true;        Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length, options);        return decodedByte;    }    @OverrIDe    protected voID onPostExecute(Bitmap bitmap) {        if (imageVIEwReference != null && bitmap != null) {            final ImageVIEw imageVIEw = imageVIEwReference.get();            if (imageVIEw != null) {                imageVIEw.setimageBitmap(bitmap);            }        }    }}

使用以下代码从主ui调用AsyncTask:

BitmapWorkerTask task = new BitmapWorkerTask(pollWebVIEw,decodedStrings[1]);                task.execute();

encodedStrings [1]包含base64编码的图像dataUrl.

这个问题有什么解决办法吗?

解决方法:

让您的应用变慢的主要问题是WeakReference删除它,然后尝试

不要用这个

 private final WeakReference<ImageVIEw> imageVIEwReference;

只是使用

private final ImageVIEw imageVIEwReference;
总结

以上是内存溢出为你收集整理的Android图片视图会使应用变慢全部内容,希望文章能够帮你解决Android图片视图会使应用变慢所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1078741.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存