1

私は画像ローダー関連のアプリケーションを開発しています。大量の画像をロードしたいので、android Universal Image Loaderを使用し ています 問題は、最初のロードに時間がかかりすぎることです。その後は高速に実行されます..

アプリケーションの読み込み時間自体として非常に高速に実行したい.誰でもアイデアを投稿してください..

Imageloader クラスのコードは次のようになります

    package com.primus.exploretaukymodule;

import java.util.ArrayList;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class Imageadapter extends BaseAdapter {

    ArrayList<String> image_path;

    Context mcontext;

    LayoutInflater inflater;

    ImageLoader load;




     static ImageLoaderConfiguration config ;



     static DisplayImageOptions imgDisplayOptions = new DisplayImageOptions.Builder()
     //.showStubImage(R.drawable.stub_image)
     .cacheInMemory() 
     .cacheOnDisc() 
     //.imageScaleType(ImageScaleType.EXACT) 
     .build();

     static ImageLoader imageLoader = ImageLoader.getInstance();

    public Imageadapter(Context c, ArrayList<String> imageUrls, ImageLoader loader, DisplayImageOptions options) {
        // TODO Auto-generated constructor stub

        image_path=new ArrayList<String>();

        image_path=imageUrls;

        mcontext=c;

        inflater=(LayoutInflater) mcontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        load=loader;

        config = new ImageLoaderConfiguration.Builder(c)
         .enableLogging()
         .memoryCacheSize(41943040)
         .discCacheSize(104857600)
         .threadPoolSize(10)
         .build();

         imageLoader.init(config);           


    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return image_path.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        ViewHolder holder;

         if (convertView == null) {

             holder=new ViewHolder();

             convertView= inflater.inflate(R.layout.explore_gridview_layout, parent, false);

             holder.imageView=(ImageView) convertView.findViewById(R.id.taukytab_grid_image);

             convertView.setTag(holder);


         } 
         else {

             holder=(ViewHolder) convertView.getTag();
         }


         holder.imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

         imageLoader.displayImage(image_path.get(position),holder.imageView, imgDisplayOptions);

         return convertView;
    }

    class ViewHolder
    {
        ImageView imageView;
    }

}

ありがとうございました..

4

1 に答える 1

0

キャッシュのせいじゃない?その場合、読み込みを高速化するには、インターネット接続を高速化するか、アセットに画像を保存して、ネットから読み込む前に画像がそこにあるかどうかを確認する必要があります。

于 2013-06-12T08:28:11.663 に答える