2013-12-18 2 views
0

Я использую пример для отображения списка с изображением и текстом. Это занимает слишком много времени, когда отображается список. Поэтому я хочу использовать этот список в качестве ленивого списка изображений, чтобы все изображения сразу не загружались, а загружались, когда пользователи прокручивали вниз.Как показать изображения с возможностью рисования в ленивом виде списка

public class SetImageText { 
public int icon; 
public String title; 
public SetImageText() 
    { 
super(); 
} 

public SetImageText(int icon,String title) 
{ 
    super(); 
    this.icon=icon; 
    this.title=title; 
} 
     } 

//Main Class 
     package com.example.customizearrayadapter; 
     import android.R.layout; 
     public class MainActivity extends Activity { 
     private ListView listView1; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     SetImageText data[]=new SetImageText[] 
     { 
     new SetImageText(R.drawable.limage,"Cloudy"), 
     new SetImageText(R.drawable.limage,"Showers"), 
     new SetImageText(R.drawable.limage,"snow"), 
     new SetImageText(R.drawable.limage,"Storm"), 
     new SetImageText(R.drawable.limage,"Sunny"), 
     new SetImageText(R.drawable.cow, "kriss"), 
     new SetImageText(R.drawable.dog,"wazid"), 
     new SetImageText(R.drawable.hen, "anuj"), 
     new SetImageText(R.drawable.horse, "abhay"), 
     new SetImageText(R.drawable.kbc, "abid"), 
     new SetImageText(R.drawable.mj ,"aman"), 
     new SetImageText(R.drawable.penguine ,"ali"), 
     new SetImageText(R.drawable.rat, "hemant"), 
     new SetImageText(R.drawable.pizza, "jai"), 
     new SetImageText(R.drawable.tortoise ,"kapil") 
    }; 

     SetImageTextArrayAdapter adapter=new  SetImageTextArrayAdapter(this,R.layout.listview_row_item,data); 
    listView1=(ListView)findViewById(R.id.listView1); 
    View header=(View)getLayoutInflater().inflate(R.layout.listview_header,null); 
    listView1.addHeaderView(header); 
    listView1.setAdapter(adapter); 
} 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 


    package com.example.customizearrayadapter; 
    import java.util.Set; 
    import android.app.Activity; 
    import android.content.Context; 

    public class SetImageTextArrayAdapter extends ArrayAdapter<SetImageText>{ 

Context context; 
int layoutResourceId; 
SetImageText data[]=null; 

public SetImageTextArrayAdapter(Context context, int layoutResourceId, 
     SetImageText[] data) { 
    super(context, layoutResourceId, data); 
    this.layoutResourceId=layoutResourceId; 
    this.context=context; 
    this.data=data; 
    // TODO Auto-generated constructor stub 
} 
public View getView(int position,View convertView,ViewGroup parent) 
{ 
    View row = convertView; 
     SetImageTextHolder holder = null; 

     if(row == null) 
     { 
      LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 
      row = inflater.inflate(layoutResourceId, parent, false); 

      holder = new SetImageTextHolder(); 
      holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon); 
      holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle); 

      row.setTag(holder); 
     } 
     else 
     { 
      holder = (SetImageTextHolder)row.getTag(); 
     } 
     SetImageText setimagetext = data[position]; 
     holder.txtTitle.setText(setimagetext.title); 
     holder.imgIcon.setImageResource(setimagetext.icon); 

     return row; 



} 



static class SetImageTextHolder 
{ 
    ImageView imgIcon; 

    TextView txtTitle; 
} 

     } 

ответ

1

Во-первых, наденьте немного фиктивного изображения на изображение. И вы можете использовать задачу Async для загрузки изображений после его готовности.

+0

может у меня пример .Я begineer. – kriss

0

Для загрузки изображений из выпадающей папки вы можете использовать библиотеку, такую ​​как Picasso Library.

Я предполагаю, что вы используете пользовательский адаптер для загрузки списка изображений и текстов. Используйте фрагмент кода ниже в методе getView() вашего адаптера.

Picasso.with(context).load(R.drawable.name_of_your_image).into(imageView1); 

Надеюсь, вы найдете это полезным.

С уважением!

Смежные вопросы