2017-09-29 12 views
-1

ArrayListに画像をロードし、GridLayoutでRecylerViewに設定しています。画像が読み込まれ、すべてがうまく見えます。しかし、私がRecylerViewをスクロールすると、遅れが始まります。画像は完全にロードされていますが、スクロール中は遅れがあります。DrawableからArrayListに画像を追加するときにRecylerViewの遅延が発生する

私が遭遇したいくつかの答えは、イメージの読み込みや、グライドやピカソのライブラリの使用でした。しかし、私はそれをどのように実装できますか? イメージを追加する方法は次のとおりです。

MainActivity:

int imageArray[] = new int[]{ 
     R.drawable.one, 
     R.drawable.two, R.drawable.three, 
     R.drawable.four,R.drawable.five,... 
}; 
private ArrayList prepareData(){ 
    ArrayList arrayList = new ArrayList(); 
    for(int i=0;i<names.length;i++){ 
     MyModel myModel = new MyModel(); 
     myModel.setDrawable(imageArray[i]); 
     arrayList.add(myModel); 
    } 
    return arrayList; 
} 

ここに私のアダプタのコードがあります:

@Override 
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
    View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.images_card, viewGroup, false); 
    return new ViewHolder(view); 
} 

@Override 
public void onBindViewHolder(ViewHolder viewHolder, int i) { 

    viewHolder.tv_logo.setImageResource(mArrayList.get(i).getDrawable()); 
} 

答えて

1

あなたはグライドを使用している場合は、グライド

Glide.with(context).load(R.drawable.yourImage).into(imageView); 

を使ってImageViewのにあなたの描画イメージをロードするには、次のコードを使用します「コンテキスト」はあなたのアクティビティコンテキストです 「imageView」はあなたのものですImageViewのオブジェクト

+0

私はグライドまたはピカソを使用していないので、このコードを追加する必要があります。 – Rohn

+0

.gradleファイルに 'com.github.bumptech.glide:glide:4.0.0'をコンパイルしてから、上記のコードをアダプタで使用する必要があります –

0

また、イメージを表示するネットワーク呼び出しライブラリのネイティブコードを使用することもできます。また、一種の遅れがある場合は、イメージビューにプログレスバーを追加して、ユーザーエクスペリエンスを向上させることもできます。レイアウトでImageViewの代わりにAppCompatImageViewを使用します。

関連する問題