//activty--main
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.a1.day8_xlistview.MainActivity">
<ListView
android:id="@+id/main_listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
//one--layout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/t_image"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_weight="1"
app:srcCompat="@mipmap/ic_launcher" />
<TextView
android:id="@+id/t_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/t_image"
android:layout_toRightOf="@+id/t_image"
android:text="标题"
android:textSize="30sp"
/>
</RelativeLayout>
//two--Layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/w_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="标题"
android:textColor="#000"
android:textSize="30sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:scaleType="centerCrop"
android:id="@+id/imageView1"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:src="@mipmap/ic_launcher" />
<ImageView
android:scaleType="centerCrop"
android:id="@+id/imageView2"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:src="@mipmap/ic_launcher" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:scaleType="centerCrop"
android:src="@mipmap/ic_launcher" />
</LinearLayout>
</LinearLayout>
//适配器
public class ListAdapter extends BaseAdapter {
private Context context;
private List<NewsBean.ResultBean.DataBean>list;
private static final int TYPE_1=0;
private static final int TYPE_2=1;
public ListAdapter(Context context, List<NewsBean.ResultBean.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//获取视图类型
int itemViewType=getItemViewType(position);
switch (itemViewType){
case TYPE_1:
ViewHolder holder;
if (convertView==null){
convertView=View.inflate(context,R.layout.oneitem_layout,null);
holder=new ViewHolder();
holder.type_iamge=convertView.findViewById(R.id.t_image);
holder.type_title=convertView.findViewById(R.id.t_title);
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
holder.getType_title().setText(list.get(position).getTitle());
String thumbnail_pic_s = list.get(position).getThumbnail_pic_s();
//加载图片
ImageLoader.getInstance().displayImage(thumbnail_pic_s,holder.getType_iamge(),MyApp.getOptions());
break;
case TYPE_2:
ViewHolder2 viewHolder2;
if (convertView==null){
convertView=View.inflate(context,R.layout.twoitem_layout,null);
viewHolder2=new ViewHolder2();
viewHolder2.two_title=convertView.findViewById(R.id.w_title);
viewHolder2.imageView01=convertView.findViewById(R.id.imageView1);
viewHolder2.imageView02=convertView.findViewById(R.id.imageView2);
viewHolder2.imageView03=convertView.findViewById(R.id.imageView3);
convertView.setTag(viewHolder2);
}else {
viewHolder2= (ViewHolder2) convertView.getTag();
}
viewHolder2.getTwo_title().setText(list.get(position).getTitle());
String thumbnail_pic_s1 = list.get(position).getThumbnail_pic_s();
String thumbnail_pic_s2 = list.get(position).getThumbnail_pic_s02();
String thumbnail_pic_s3 = list.get(position).getThumbnail_pic_s03();
ImageLoader.getInstance().displayImage(thumbnail_pic_s1,viewHolder2.getImageView01(),MyApp.getOptions());
ImageLoader.getInstance().displayImage(thumbnail_pic_s2,viewHolder2.getImageView02(),MyApp.getOptions());
ImageLoader.getInstance().displayImage(thumbnail_pic_s3,viewHolder2.getImageView03(),MyApp.getOptions());
break;
}
return convertView;
}
@Override
public int getItemViewType(int position) {
NewsBean.ResultBean.DataBean newbean=list.get(position);
String thumbnail_pic_s03=newbean.getThumbnail_pic_s03();
if (TextUtils.isEmpty(thumbnail_pic_s03)){
return TYPE_1;
}
return TYPE_2;
}
@Override
public int getViewTypeCount() {
return 2;
}
class ViewHolder{
private ImageView type_iamge;
private TextView type_title;
public ViewHolder() {
this.type_iamge = this.type_iamge;
this.type_title = this.type_title;
}
public ImageView getType_iamge() {
return type_iamge;
}
public void setType_iamge(ImageView type_iamge) {
this.type_iamge = type_iamge;
}
public TextView getType_title() {
return type_title;
}
public void setType_title(TextView type_title) {
this.type_title = type_title;
}
}
class ViewHolder2 {
private TextView two_title;
private ImageView imageView01;
private ImageView imageView02;
private ImageView imageView03;
public ViewHolder2() {
this.two_title = two_title;
this.imageView01 = imageView01;
this.imageView02 = imageView02;
this.imageView03 = imageView03;
}
public TextView getTwo_title() {
return two_title;
}
public void setTwo_title(TextView two_title) {
this.two_title = two_title;
}
public ImageView getImageView01() {
return imageView01;
}
public void setImageView01(ImageView imageView01) {
this.imageView01 = imageView01;
}
public ImageView getImageView02() {
return imageView02;
}
public void setImageView02(ImageView imageView02) {
this.imageView02 = imageView02;
}
public ImageView getImageView03() {
return imageView03;
}
public void setImageView03(ImageView imageView03) {
this.imageView03 = imageView03;
}
}
}
//MyApp
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
//初始化ImageLoader
//创建默认的ImageLoader配置参数
ImageLoaderConfiguration configuration = ImageLoaderConfiguration
.createDefault(this);
//Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(configuration);
}
public static DisplayImageOptions getOptions() {
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.mipmap.ic_launcher) // resource or drawable
.showImageForEmptyUri(R.mipmap.ic_launcher) // resource or drawable
.showImageOnFail(R.mipmap.ic_launcher) // resource or drawable
.cacheInMemory(true) // default
.cacheOnDisk(true) // default
.displayer(new SimpleBitmapDisplayer()) // default
.handler(new Handler()) // default
.build();
return options;
}
}
//主Activity
public class MainActivity extends AppCompatActivity {
public static String one_url="http://v.juhe.cn/toutiao/index?type=&key=2f41498b35e69877fc56dc96776e5d1f";
private static final String TAG = "MainActivity=====";
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始话界面
initViews();
//从网络获取数据
initDatas();
}
private void initDatas() {
HttpUtils httpUtils=HttpUtils.getInstance();
httpUtils.get(one_url);
httpUtils.setHttpUtilsListener(new HttpUtils.HttpUtilListener() {
@Override
public void getSuccess(String json) {
Log.d(TAG, "成功 "+json);
Gson gson=new Gson();
NewsBean bean=gson.fromJson(json,NewsBean.class);
List<NewsBean.ResultBean.DataBean>list=bean.getResult().getData();
ListAdapter listAdapter=new ListAdapter(MainActivity.this,list);
listView.setAdapter(listAdapter);
}
@Override
public void getError(String error) {
Log.d(TAG, "失败"+error);
}
});
}
private void initViews() {
listView=findViewById(R.id.main_listview);
}
}