1

私は ListView を持っています。ListView の各項目ビューは、それらを作成およびデコードしている間にいくつかのビットマップを描画しています。しかし、スクロール中は、Samsung S3 でテストしてもスムーズではありません。

私の解決策は、スクロール中に静止画像にすることです。しかし、それを実装するのは難しいです。

パフォーマンスを向上させる簡単な方法またはより良い方法はありますか?

主な描画コード:

  Bitmap bitmap = decoder.getFrame(index);
  if (bitmap != null) {
    if (!bitmap.isRecycled()) {
      canvas.drawBitmap(bitmap, new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()), new Rect(0, 0, fixedSize, fixedSize), paint);
      invalidate();
    }
  }


public Bitmap getFrame(int n) {
    if (frameCount <= 0)
        return null;
    if (n >= frames.size())
        return null;
    n = n % frameCount;
    return ((GifFrame) frames.elementAt(n)).image;
}
4

3 に答える 3

0

おそらく、 UrlImageViewHelperAndroid-Universal-Image-Loaderなどのサードパーティ ライブラリを使用して、画像の読み込みを行う必要があります。これらのライブラリは通常、マルチスレッドやビューのリサイクル/無効化などの複雑なものを処理します。

于 2013-09-05T05:29:18.917 に答える
0

UI スレッドで操作を行っているため、リスト ビューのスクロールがスムーズではありません。

これを回避するには、スクロール リスナーを使用する必要があります。スクロールが停止したときにのみ、表示されているアイテムに対してのみ操作を実行します。

API デモ サンプルの List13.java を確認してください。

于 2013-09-05T05:05:20.627 に答える
0

これを試してくださいListViewのスクロールをスムーズにする

于 2013-09-30T12:23:04.113 に答える