5

私は Android 用のオーディオ プレーヤーを開発していますが、ブラウズ アルバム アクティビティでパフォーマンスに問題があります。スクロール時に多くの遅延が発生します。

この画像は私のレイアウト表現です:ここに画像の説明を入力

行を表示するのは ListView です。行には、アーティスト別にグループ化された 5 つのアルバムが含まれます。

それぞれの異なる色は、異なるレイアウト ファイルです。そして、各ファイルはアダプタによって管理されます。

アルバム (オレンジ色) では、TextView で CompoundDrawable を使用しません。これは、ImageView の遅延読み込みがあり、textview の CompoundDrawable でこの遅延読み込みを行う方法がわからないためです。

必要に応じて、すべてのレイアウト ファイルを投稿できます。

4

4 に答える 4

2

多くの最適化の後、このようにレイアウトを変更します

私の新しいレイアウト

于 2013-01-08T13:38:51.870 に答える
0

パフォーマンスを向上させるためにレイアウトを単純化する必要がある場合、何かを犠牲にする必要があります。そのような単純化は無料ではありません。最も有望なアプローチは、行リストビューのレイアウトを GridLayout に置き換えることだと思います。原則として、そのような GridLayout を使用してその行内のすべてのレイアウトを処理できますが、実際の利点を得るには、GridView (アーティストによるアルバム グリッド) を放棄し、それを GridLayout の一部として処理する必要があります。これにはおそらく追加の Java コードが必要になりますが、パフォーマンスが向上すると思います。

于 2012-12-20T20:31:05.100 に答える
0

うーん、これがあなたのケースで簡単に可能かどうかはわかりませんが、各テーブル行を RelativeLayout にすると、おそらく行の LinearLayout 要素のほとんどまたはすべてを削除できると思います。android:layout_toLeftOf と android:layout_alignParentRight を使用して、行内の各 LinearLayout を別の LinearLayout の左/右に配置する必要があることだけを述べる必要があります。

于 2012-12-07T22:13:01.880 に答える