listView 多条目加载

第一步 :  布局



   activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <ListView 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/lv"
        ></ListView>
      

</RelativeLayout>
listview 条目样式布局

item1

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/ima"
        android:layout_width="150dp"
        android:layout_height="75dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/ic_launcher" />

    

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/imageView1"
        android:layout_alignLeft="@+id/imageView2"
        android:layout_marginBottom="26dp"
        android:layout_marginLeft="40dp"
        android:text="TextView" />

</RelativeLayout>
item2
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    <ImageView 
        android:layout_width="0dp"
        android:layout_height="150dp"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher"
        android:id="@+id/img1"
        />
    <ImageView 
        android:layout_width="0dp"
        android:layout_height="150dp"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher"
        android:id="@+id/img2"
        />
 
 
 <ImageView 
        android:layout_width="0dp"
        android:layout_height="150dp"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher"
        android:id="@+id/img3"
        />
</LinearLayout>
 
 
第二步: 适配器编写


package com.example.http4;

import android.content.Context;

import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
 * Created by lenovo on 2017/9/20.
 */

class MyAdapter extends BaseAdapter{
    Context context;
    List<DataDataBean.NewslistBean> data;
    private static final int typeOne=0;
    private static final int typeTwo=1;

    public MyAdapter(Context context, List<DataDataBean.NewslistBean> data) {
        this.context = context;
        this.data = data;
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        Asdone asdone;
        Asdtwo asdtwo;
        int type = getItemViewType(i);
        if (view==null) {
            switch (type) {
                case typeOne:
                    asdone = new Asdone();

                    view = View.inflate(context, R.layout.t1, null);
                    asdone.img =  view.findViewById(R.id.img);
                    asdone.tv = view.findViewById(R.id.tv);
                    view.setTag(asdone);
                    break;
                case typeTwo:
                    asdtwo = new Asdtwo();
                    view = View.inflate(context, R.layout.t2, null);
                    asdtwo.img1 = view.findViewById(R.id.img1);
                    asdtwo.img2 = view.findViewById(R.id.img2);
                    asdtwo.img3=view.findViewById(R.id.img3);
                    view.setTag(asdtwo);
                    break;
                    default:
                    break;
            }

        }
        switch (type) {
            case typeOne:
                asdone=(Asdone) view.getTag();
                asdone.tv.setText(data.get(i).getTitle());
                DisplayImageOptions options = new DisplayImageOptions.Builder()
                        .showImageOnLoading(R.mipmap.ic_launcher)            //加载图片时的图片
                        .showImageForEmptyUri(R.mipmap.ic_launcher)         //没有图片资源时的默认图片
                        .showImageOnFail(R.mipmap.ic_launcher)              //加载失败时的图片
                        .cacheInMemory(true)                               //启用内存缓存
                        .cacheOnDisk(true)                                 //启用外存缓存
                        .considerExifParams(true)                          //启用EXIF和JPEG图像格式
                        .build();
                  ImageLoader.getInstance().displayImage(data.get(i).getPicUrl(),asdone.img,options);
                break;
            case typeTwo:
                  asdtwo= (Asdtwo) view.getTag();
                  ImageLoader.getInstance().displayImage(data.get(i).getPicUrl(),asdtwo.img1);
                  ImageLoader.getInstance().displayImage(data.get(i).getPicUrl(),asdtwo.img2);
                  ImageLoader.getInstance().displayImage(data.get(i).getPicUrl(),asdtwo.img3);
            default:
                break;
        }

        return view;
    }
                 @Override
              public int getItemViewType(int position) {
                  int posttype=position%2;
                  if (posttype==0) {
                  return typeOne;
                  }else{
                  return typeTwo;
                  }
                 }
                @Override
               public int getViewTypeCount() {

                return 2;
              }
    class Asdone{
        ImageView img;
        TextView tv;
    }
    class Asdtwo{
        ImageView img1;
        ImageView img2;
        ImageView img3;
    }
}


 
 
 
 
 
 


猜你喜欢

转载自blog.csdn.net/zh_binfgan/article/details/78033403
今日推荐