0

无论如何,我可以在 FlipView 上缓存图像吗?我已经可以在 FlipView 上加载 (20) 图像,并且我使用 AsyncTask 进行加载,因为加载它需要大量时间。但我的主要问题是,有没有什么方法可以让我在 FlipView 中选择一个项目,比如项目 #15,然后显示 #15 的详细信息页面,当我按下返回时,FlipView 仍然会显示 #15 而不是重新加载整个 FlipView 并从项目 #1 重新开始。我正在像这样在我的 FlipView 上加载图像:

private int imageID[]={
         R.drawable.x1,
         R.drawable.x2,
         R.drawable.x3,
         R.drawable.x4,
         R.drawable.x5,
         R.drawable.x6,
         R.drawable.x7,
         R.drawable.x8,
         R.drawable.x9,
         R.drawable.x10,
         R.drawable.x11,
         R.drawable.x12,
         R.drawable.x13,
         R.drawable.x14,
         R.drawable.x15,
         R.drawable.x16,
         R.drawable.x17,
         R.drawable.x18,
         R.drawable.x19,
         R.drawable.x20
        };
ImageView[] image = new ImageView[20];
private ViewFlipper FlipV = null;

private class asyncImage extends AsyncTask<Void, Void, Void>{
    int i;
    @Override
    protected Void doInBackground(Void... params) {
        for (i=0;i<imageID.length;i++){
            image[i] = new ImageView(getBaseContext());
            image[i].setImageResource(imageID[i]);
            image[i].setBackgroundDrawable(getResources().getDrawable(R.drawable.border));
            image[i].setScaleType(ImageView.ScaleType.FIT_XY);
        }
        return null;
    }

    protected void onPostExecute(Void result){
        for (int x=0;x<imageID.length;x++){
        FlipV.addView(image[x]);
        }
        count = 1;
        progDialog.dismiss();
        txItem.setText(Integer.toString(count) + "/" + (imageID.length));
    }
}

private void nextImage(){
    if(count < imageID.length) {
        this.FlipV.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
        this.FlipV.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
        this.FlipV.showNext();
        count++;
        txItem.setText(Integer.toString(count) + "/" + (imageID.length));
    }

}
4

1 回答 1

1

您可以尝试Android Universal ImageLoader中给出的图像加载机制。这在某种程度上是Fedor 的优化解决方案-带有图像的惰性列表

因此,您可以尝试 ImageLoader 类并在您的应用程序中实现逻辑来解决问题。

于 2012-08-09T06:53:58.210 回答