有什么方法可以提高设置图像的速度吗?我想说的是假设我有几百张图像,每张图像都可以自动更改或按前进/后退按钮。 (想想媒体播放器的情况,你可以转发或倒回尽可能多的文件,我正在处理图像和一些音频)。
现在,如果我持续按下RW / FW按钮,布局会显示为黑色一段时间或要求强制关闭或等待应用程序。
任何人都知道如何提高读取位图的速度并将其设置为imageview?
这是我的代码的一部分,
private void playAudio() {
msg = new Message();
msg.obj = (filepath);
imageHandler.sendMessage(msg);
}
private Handler imageHandler = new Handler() {
public void handleMessage(Message msg) {
try {
path = (String) msg.obj;
imagePath = RaconTours.PATH + path;
imagenamearray = imagePath.split("/");
currentImagename = imagenamearray[8];
i++;
if (!imagePath.equalsIgnoreCase(staticpath)) {
isSeekBarChangedManually = false;
staticpath = imagePath;
Bitmap snoop = readBitmap(Uri.fromFile(new File(filepath)));
image.setImageBitmap(snoop);
image.setMaxZoom(4f);
} catch (Exception e) {
e.printStackTrace();
}
}
};
希望你对这段代码有所了解,这只是大蛋糕的一小部分。
我没有得到解决这个问题的方法。我也尝试禁用按钮,直到执行某些操作,但这也没用。
任何帮助,欢呼
答案 0 :(得分:0)
我认为使这个过程“更快”的唯一方法是在实际需要之前在缓冲区中加载和缓存位图。当您需要位图时,请检查此转发缓存以查看它是否已加载。如果是,则表示它已经在内存中 - >你只需要为正确的ImageView(或任何你使用的)设置它。如果没有,那么你从磁盘加载它。
当然,您需要知道在不久的将来您最需要的位图才能实现。
您无法以更快的速度完成磁盘I / O工作。