私はAndroidListView
を持っており、スクロールしているときに小さな(たとえば、1〜5フレーム)スタッターが約1秒ごとに発生します。多くのAndroid携帯電話にはアニメーションの滑らかさに関するこれらの問題があることを認識していますが、私の携帯電話(Android2.2を実行しているMotorolaA855)では、ネイティブの連絡先リストが非常にスムーズにスクロールします。連絡先リストのアイテムビューは、私のリストのアイテムビューよりも複雑です。
<RelativeLayout>
<TextView />
<TextView />
</RelativeLayout>
ネイティブの連絡先リストと同じくらいの滑らかさを実現したいだけです。これはネイティブコードで最適化せずに可能であるように思われますが、おそらく私はそれについて間違っています。
私はいくつかのことを試しました。アイテムビューをさらに単純化し、XMLではなくプログラムでインスタンス化してみました。また、次のリンクに従って、アイテムのクリックイベントへの反応方法を変更してみました。
http://groups.google.com/group/android-developers/browse_thread/thread/7dc261a6b382ea74?pli=1
これらはいずれもパフォーマンスに影響を与えないようです。
パフォーマンスを向上させるためにアプリでできることはありますか?私はこのアプリを多くの電話に展開しようとしているので、電話の設定を変更したり、デバイスをルート化したりすることは私の場合のオプションではありません。これが私のアダプタクラスのgetViewメソッドです。
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater flater = (LayoutInflater)context.getSystemService(ListActivity.LAYOUT_INFLATER_SERVICE);
layout = flater.inflate(R.layout.song_view, parent, false);
TextView first = (TextView)layout.findViewById(R.id.firstLine);
TextView second = (TextView)layout.findViewById(R.id.secondLine);
Thing t = array.get(position);
first.setText(t.title);
second.setText(t.name);
return layout;
}
前もって感謝します!