第一步 : 布局
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"
/>
</LinearLayout><ImageView android:layout_width="0dp" android:layout_height="150dp" android:layout_weight="1" android:src="@drawable/ic_launcher" android:id="@+id/img3" />
第二步: 适配器编写
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; } }