做到如上的效果,我是用lestview做的,但是缺点是,每段列表的宽度达不到图片的效果(越往下框越窄)所以在这方面知识我们还需要进行学习 我的具体代码如下
wuliu_list.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:weightSum="10">
<ImageView
android:layout_weight="1.5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/jiantou"/>
<RelativeLayout
android:layout_weight="7"
android:layout_width="0dp"
android:layout_height="match_parent">
<TextView
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="查看物流"
android:layout_centerInParent="true"
android:textSize="22sp"/>
</RelativeLayout>
<ImageView
android:layout_gravity="center_vertical"
android:layout_weight="1.5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:src="@drawable/shenglueer"/>
</LinearLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_view">
</ListView>
</LinearLayout>
wuliujiamian.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp">
<LinearLayout
android:layout_weight="3"
android:layout_width="0dp"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<TextView
android:id="@+id/hate"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textStyle="bold"/>
<TextView
android:layout_alignParentRight="true"
android:id="@+id/time"
android:layout_below="@+id/hate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="13sp" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:background="#e4d8d8"
android:layout_weight="2"
android:layout_gravity="center"
android:layout_width="1dp"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/pic_image"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:background="#e4d8d8"
android:layout_weight="1"
android:layout_gravity="center"
android:layout_width="1dp"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:layout_weight="8"
android:layout_width="0dp"
android:layout_height="match_parent"
>
<RelativeLayout
android:layout_marginRight="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<TextView
android:id="@+id/youdixinxi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:textColor="#ff6a30"/>
<TextView
android:id="@+id/dongtaixinxi"
android:layout_marginTop="10dp"
android:layout_below="@+id/youdixinxi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="#ff6a30"
/>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
package com.example.mrli.wuliu;
public class Fruit {
// 水果的名称
private String hate;
// 水果对应图片的资源id,在drawble里边
private int imageId;
private String time;
private String youdixinxi;
private String dongtaixinxi;
// 构造函数
public Fruit(String hate, int imageId,String time,String youdixinxi,String dongtaixinxi){
this.hate = hate;
this.imageId = imageId;
this.time = time;
this.youdixinxi = youdixinxi;
this.dongtaixinxi = dongtaixinxi;
}
// get名字
public String getHate() {
return hate;
}
// get图片id
public int getImageId() {
return imageId;
}
public String getTime() {return time;}
public String getYoudixinxi() {return youdixinxi;}
public String getDongtaixinxi() {return dongtaixinxi;}
}
FruitAdapter
package com.example.mrli.wuliu; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import java.util.List; /** * Created by Mr.li on 2017/12/25. */ public class FruitAdapter extends ArrayAdapter<Fruit> { // 子项布局的id private int resourceId; // 构造函数 public FruitAdapter(Context context, // context上下文 int textViewResourceId, // 子项布局的id List<Fruit> objects){ // 数据链表 super(context, textViewResourceId, objects); resourceId = textViewResourceId; } // 重写getView @Override public View getView(int position, View convertView, ViewGroup parent) { // 获取当前项的Fruit实例 Fruit fruit = getItem(position); View view; ViewHolder viewHolder; if (convertView == null){ // inflate出子项布局,实例化其中的图片控件和文本控件 view = LayoutInflater.from(getContext()).inflate(resourceId, null); viewHolder = new ViewHolder(); // 通过id得到图片控件实例 viewHolder.fruitImage = (ImageView) view.findViewById(R.id.pic_image); // 通过id得到文本空间实例 viewHolder.fruitHate = (TextView) view.findViewById(R.id.hate); // 缓存图片控件和文本控件的实例 viewHolder.fruitTime = (TextView) view.findViewById(R.id.time); viewHolder.fruitYoudixinxi = (TextView) view.findViewById(R.id.youdixinxi); viewHolder.fruitDongtaixinxi = (TextView) view.findViewById(R.id.dongtaixinxi); view.setTag(viewHolder); }else{ view = convertView; // 取出缓存 viewHolder = (ViewHolder) view.getTag(); } // 直接使用缓存中的图片控件和文本控件的实例 // 图片控件设置图片资源 viewHolder.fruitImage.setImageResource(fruit.getImageId()); // 文本控件设置文本内容 viewHolder.fruitHate.setText(fruit.getHate()); viewHolder.fruitTime.setText(fruit.getTime()); viewHolder.fruitYoudixinxi.setText(fruit.getYoudixinxi()); viewHolder.fruitDongtaixinxi.setText(fruit.getDongtaixinxi()); return view; } // 内部类 class ViewHolder{ ImageView fruitImage; TextView fruitHate; TextView fruitTime; TextView fruitYoudixinxi; TextView fruitDongtaixinxi; } }
MainActivity
package com.example.mrli.wuliu; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView listView; private List<Fruit> fruitList = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.wuliu_list); ArrayAdapter<String>adapter = new ArrayAdapter<String>( MainActivity.this, // Context上下文 android.R.layout.simple_list_item_1, // 子项布局id data); listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(adapter); initFruits(); FruitAdapter adapter1 = new FruitAdapter(MainActivity.this, R.layout.wuliujiamian, fruitList); listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(adapter1); } private String[] data={"Apple","banana","orange","Watermelon", "Pear","Grape","Pineapple", "Strawberry","Cherry","Mango"}; private void initFruits(){ //苹果 Fruit apple = new Fruit("12-12", // 名字 R.drawable.pic_dizhi,"15:40","派送中","[沈阳市]辽宁沈阳道义开发区派件员:长得帅 18341211674正在为您派件"); // 图片id fruitList.add(apple); // 苹果增加到链表 Fruit banana = new Fruit("12-11",R.drawable.pic_duihao,"12:40","正在路上","沈阳市中转站"); fruitList.add(banana); Fruit orange = new Fruit("12-10",R.drawable.pic_jiantou,"01:40","正在路上","辽宁中转站"); fruitList.add(orange); Fruit Pear = new Fruit("12-09",R.drawable.pic_jiantou,"03:40","正在路上","天津中转站"); fruitList.add(Pear); Fruit Grape = new Fruit("12-08",R.drawable.pic_jiantou,"02:40","正在路上","北京中转站"); fruitList.add(Grape); Fruit Pineapple = new Fruit("12-07",R.drawable.pic_jiantou,"03:40","正在路上","上海中转站"); fruitList.add(Pineapple); } }