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開発のご相談は、こちらまでお問い合わせください。:http://corp.sorich.jp/info/contact.html]]

TOP