当setImageResource时,ImageView会变慢

时间:2015-07-06 14:56:51

标签: android

由于ShowCaseView开发已经停止,我选择另一种方式在我的应用程序中进行首次巡视,方式是:

我从Galaxy G4为每个屏幕拍摄了7个屏幕截图,并在其中制作了一些文本,并在第一次运行时在imageView中显示。

但是,当我更改图像(用户点击下一个提示按钮)时,需要很长时间才能更改和错误的应用程序,在平板电脑(10.1)中运行良好(我不知道为什么因为平板电脑处理器较低比g4)

图像质量很好(HD),尺寸为720:1280,如果我将尺寸改为500x600或更小,它变化得更快,但在平板电脑中图像看起来很可怕丑陋

我用它来改变;

btnNextTip.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tipImages.setImageResource(bImage);
            }
        });

有没有办法做到这一点?还是另一个好的图书馆来做第一次旅游?或更改图像,但它不看VGA截图?

感谢

2 个答案:

答案 0 :(得分:2)

一种好的方法是分离您的图像资源,以便将具有较高质量的图像用于平板电脑,并使用较低分辨率的图像资源。

您可以检测安装了应用程序的设备的屏幕大小,并根据该屏幕大小选择要显示的图像分辨率。

点击此处了解详情: Supporting Multiple Screen sizes - Android Developer

答案 1 :(得分:2)

setImageResource()方法有点慢,因为它在UI线程上解码,我们可以使用工作线程或AsyncTaks解决这个问题,但是可以使用一个简单的现成解决方案。哪个是Glide库。您只需要将它的依赖项添加到您的gradle文件中:

compile 'com.github.bumptech.glide:glide:3.7.0'

然后使用它的id设置drawable图像:

Glide.with(context).load(bImage).into(tipImages);

也可能像Picasso这样的其他图像库提供此选项。

(您可以使用最新版本的Glide库而不是3.7.0)