更改图像会消耗大量时间

时间:2012-04-24 10:29:39

标签: android bitmap imageview

有什么方法可以提高设置图像的速度吗?我想说的是假设我有几百张图像,每张图像都可以自动更改或按前进/后退按钮。 (想想媒体播放器的情况,你可以转发或倒回尽可能多的文件,我正在处理图像和一些音频)。

现在,如果我持续按下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();
          }
     }
};

希望你对这段代码有所了解,这只是大蛋糕的一小部分。

我没有得到解决这个问题的方法。我也尝试禁用按钮,直到执行某些操作,但这也没用。

任何帮助,欢呼

1 个答案:

答案 0 :(得分:0)

我认为使这个过程“更快”的唯一方法是在实际需要之前在缓冲区中加载和缓存位图。当您需要位图时,请检查此转发缓存以查看它是否已加载。如果是,则表示它已经在内存中 - >你只需要为正确的ImageView(或任何你使用的)设置它。如果没有,那么你从磁盘加载它。

当然,您需要知道在不久的将来您最需要的位图才能实现。

您无法以更快的速度完成磁盘I / O工作。