android - ListView optimization with local images -


i have listview uses custom adapter, custom adapter uses data jsonobject array (yes, not jsonarray), list seems quite sluggish, have used holder pattern , cleaned object instancing getview() method, alternatives have? right it's loaded specific list ever be, 48 elements have following inflated view:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="10dp" >  <linearlayout     android:layout_width="0dp"     android:layout_height="wrap_content"     android:orientation="vertical"     android:padding="10dp"     android:layout_weight="1" >      <textview         android:id="@+id/name"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:gravity="center_vertical"         android:textsize="15sp"         android:textstyle="bold" />      <textview         android:id="@+id/comment"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:gravity="top" /> </linearlayout>  <textview     android:id="@+id/price"     android:layout_width="0dp"     android:layout_height="match_parent"     android:layout_weight="0.8"     android:gravity="right|center_vertical"     android:textsize="35sp"     android:textstyle="bold"     android:textcolor="@color/dark_green" />  <textview     android:id="@+id/curr"     android:layout_width="0dp"     android:layout_height="match_parent"     android:layout_weight="0.3"     android:gravity="left|center_vertical"     android:paddingleft="5dp"     android:textsize="14sp" />  </linearlayout> 

my adapter class looks this:

public class detallejsonadapter extends arrayadapter<jsonobject> {  context context; int layoutresourceid; jsonobject data[] = null;  public detallejsonadapter(context context, int layoutresourceid,         jsonobject[] data) {     super(context, layoutresourceid, data);     this.layoutresourceid = layoutresourceid;     this.context = context;     this.data = data; }  @override public view getview(int position, view convertview, viewgroup parent) {     view row = convertview;     jsonobjectholder holder = null;      if (row == null) {         layoutinflater inflater = ((activity) context).getlayoutinflater();         row = inflater.inflate(layoutresourceid, parent, false);          holder = new jsonobjectholder();         holder.flagicon1 = (imageview) row.findviewbyid(r.id.flagicon1);         holder.score = (textview) row.findviewbyid(r.id.score);         holder.flagicon2 = (imageview) row.findviewbyid(r.id.flagicon2);          row.settag(holder);     } else {         holder = (jsonobjectholder) row.gettag();     }      jsonobject jso = data[position];     holder.flagicon1.setimageresource(flagutil.getflagbyintcode(jso.get(             "url_icon1").getasstring()));     holder.score.settext(jso.get("goles_estimados_e1").getasstring()             + " - " + jso.get("goles_estimados_e2").getasstring());     holder.flagicon2.setimageresource(flagutil.getflagbyintcode(jso.get(             "url_icon2").getasstring()));     return row; }  static class jsonobjectholder {     imageview flagicon1;     textview score;     imageview flagicon2; } } 

bear in mind list elements have click listener not implemented in version, don't know performance implications have, aside i've done, else can list performance? fear of issue due repeated use setimageresource(), alternatives have got here?

edit: getflagbyintcode() code:

package com.tghsistemas.curia.quini.util; 

import com.tghsistemas.curia.quini.csquini.r;

public class flagutil {

public static int getflagbyintcode(string code) {      if (code.equals("alg")) {         return r.drawable.flag_circle_alg;     } else if (code.equals("arg")) {         return r.drawable.flag_circle_arg;     } else if (code.equals("aus")) {         return r.drawable.flag_circle_aus;     } else if (code.equals("bel")) {         return r.drawable.flag_circle_bel;     } else if (code.equals("bra")) {         return r.drawable.flag_circle_bra;     } else if (code.equals("bih")) {         return r.drawable.flag_circle_bih;     } else if (code.equals("chi")) {         return r.drawable.flag_circle_chi;     } else if (code.equals("civ")) {         return r.drawable.flag_circle_civ;     } else if (code.equals("cmr")) {         return r.drawable.flag_circle_cmr;     } else if (code.equals("col")) {         return r.drawable.flag_circle_col;     } else if (code.equals("crc")) {         return r.drawable.flag_circle_crc;     } else if (code.equals("cro")) {         return r.drawable.flag_circle_cro;     } else if (code.equals("ecu")) {         return r.drawable.flag_circle_ecu;     } else if (code.equals("eng")) {         return r.drawable.flag_circle_eng;     } else if (code.equals("esp")) {         return r.drawable.flag_circle_esp;     } else if (code.equals("fra")) {         return r.drawable.flag_circle_fra;     } else if (code.equals("ger")) {         return r.drawable.flag_circle_ger;     } else if (code.equals("gha")) {         return r.drawable.flag_circle_gha;     } else if (code.equals("gre")) {         return r.drawable.flag_circle_gre;     } else if (code.equals("hon")) {         return r.drawable.flag_circle_hon;     } else if (code.equals("irn")) {         return r.drawable.flag_circle_irn;     } else if (code.equals("ita")) {         return r.drawable.flag_circle_ita;     } else if (code.equals("jpn")) {         return r.drawable.flag_circle_jpn;     } else if (code.equals("kor")) {         return r.drawable.flag_circle_kor;     } else if (code.equals("mex")) {         return r.drawable.flag_circle_mex;     } else if (code.equals("ned")) {         return r.drawable.flag_circle_ned;     } else if (code.equals("nig")) {         return r.drawable.flag_circle_nig;     } else if (code.equals("por")) {         return r.drawable.flag_circle_por;     } else if (code.equals("rus")) {         return r.drawable.flag_circle_rus;     } else if (code.equals("swe")) {         return r.drawable.flag_circle_swe;     } else if (code.equals("uru")) {         return r.drawable.flag_circle_uru;     } else if (code.equals("usa")) {         return r.drawable.flag_circle_usa;     } else {         return r.drawable.red_shell_placeholder;     }  }  } 


Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -