第一步 : 布局
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; } }