Java/Android/応用編/画面表示(データ表示)時のパフォーマンスを改善する方法

Top > Java > Android > 応用編 > 画面表示(データ表示)時のパフォーマンスを改善する方法

android応用編?

画面表示(データ表示)時のパフォーマンスを改善する方法

画面表示(データ表示)時のパフォーマンス改善します。

対象は画面が対象になります。
ループを表示するとき、すなわち Adapter.getView 使用時のタイミングです。
通常は下記の様に書きます。

public View getView(int position, View convertView, ViewGroup parent){
ViewObject obj = (ViewObject)this.getItem(position);
View view = this.inflater.inflate(R.layout.xxxxx, null);

TextView textView1 = (TextView)view.findViewById(R.id.xxxxx);
textView1.setText(obj.getxxxx());

returnu view
}

上記のような場合、ループ毎に ViewObject?TextView? を作成してしまいます。
ViewObject?TextView? は処理中、セットする値が変わる事は無いので、使い回すようにします。
下記のように修正してみます。

private TextView textView1;
public View getView(int position, View convertView, ViewGroup parent){
ViewObject obj = null;
View view = convertView;
if(view == null){
    view = this.inflater.inflate(R.layout.cshsartist_list_view, null);
    textView1 = (TextView)view.findViewById(R.id.xxxxx);
    
    obj = (ViewObject)this.getItem(position);
    view.setTag(obj);
}else{
Log.d(TAG, "view = " + view);
obj = (ViewObject)view.getTag();
}

textView1.setText(obj.getxxxx());
returnu view
}

この様にすると、View や ViewText? を作成する事ないのでパフォーマンスが向上します。
表示するフィールドが多ければ多いほど効果があるでしょう。

android開発のご相談は、こちらまでお問い合わせください。

最終更新日: 2010-09-14 (火) 14:29:22 (2622d)

このページをブックマーク:

このページのURL(コピペして利用下さい):

TOP