先在清单文件配置权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
在application改变name名称
在Gradle中添加依赖
compile 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
创建一个普通类
package com.lbp.mode4.bean; /** * Created by Administrator on 2017/11/7 0007. */ public class Goods { private String name; private String price; private int resId; private int typeId; public Goods(String name, String price, Integer typeId) { super(); this.name = name; this.price = price; this.typeId = typeId; } public Goods(String name, String price, int resId, Integer typeId) { super(); this.name = name; this.price = price; this.resId = resId; this.typeId = typeId; } public int getTypeId() { return typeId; } public void setTypeId(int typeId) { this.typeId = typeId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public int getResId() { return resId; } public void setResId(int resId) { this.resId = resId; } @Override public String toString() { return "Goods [name=" + name + ", price=" + price + ", resId=" + resId + "]"; } }
在创建一个普通类继承Aapplication
package com.lbp.mode4; import android.app.Application; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; /** * Created by Administrator on 2017/11/7 0007. */ public class UserApp extends Application{ @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(configuration); } }在主Activity
package com.lbp.mode4; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.lbp.mode4.bean.Goods; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; public class MainActivity extends AppCompatActivity { @BindView(R.id.lv) ListView lv; private List<Goods> goodslist; String imgUrl = "http://image.tianjimedia.com/uploadImages/2012/067/N80N0GUA36N0.jpg"; private ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); initData(); } private void initData() { goodslist = new ArrayList<>(); goodslist.add(new Goods("商品1", "21", 1)); goodslist.add(new Goods("商品3", "23", 0)); goodslist.add(new Goods("商品4", "24", R.drawable.hu, 1)); goodslist.add(new Goods("商品2", "22", R.drawable.hu, 1)); goodslist.add(new Goods("商品5", "25", 0)); goodslist.add(new Goods("商品6", "26", R.drawable.hu, 1)); goodslist.add(new Goods("商品21", "21", 0)); goodslist.add(new Goods("商品5", "25", 0)); goodslist.add(new Goods("商品22", "22", R.drawable.hu, 1)); goodslist.add(new Goods("商品23", "23", 0)); goodslist.add(new Goods("商品24", "24", R.drawable.hu, 1)); goodslist.add(new Goods("商品25", "25", 0)); goodslist.add(new Goods("商品26", "26", R.drawable.hu, 1)); goodslist.add(new Goods("商品31", "21", 0)); goodslist.add(new Goods("商品32", "22", R.drawable.hu, 1)); goodslist.add(new Goods("商品34", "24", R.drawable.hu, 1)); goodslist.add(new Goods("商品36", "26", R.drawable.hu, 1)); goodslist.add(new Goods("商品33", "23", 0)); goodslist.add(new Goods("商品35", "25", 0)); lv.setAdapter(new MyAdapter()); } class MyAdapter extends BaseAdapter{ private final int type1 = 0; private final int type2 = 1; @Override public int getCount() { return goodslist.size(); } @Override public Object getItem(int i) { return goodslist.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int typeId = goodslist.get(i).getTypeId(); switch(typeId){ case type1: Holder1 holder1=null; if(view==null){ holder1 = new Holder1(); view = View.inflate(MainActivity.this, R.layout.lv_item_1, null); holder1.textview1 = view.findViewById(R.id.tv1); holder1.textView2 = view.findViewById(R.id.tv2); view.setTag(holder1); }else{ holder1 = (Holder1) view.getTag(); } holder1.textview1.setText(goodslist.get(i).getName()); holder1.textView2.setText(goodslist.get(i).getPrice()); break; case type2: Holder2 holder2 = null; if(view==null){ holder2=new Holder2(); view = View.inflate(MainActivity.this, R.layout.lv_item_2, null); holder2.tv_1 = view.findViewById(R.id.textview1); holder2.tv_2 = view.findViewById(R.id.textview2); holder2.image = view.findViewById(R.id.image); view.setTag(holder2); } else{ holder2 = (Holder2) view.getTag(); } holder2.tv_1.setText(goodslist.get(i).getName()); holder2.tv_2.setText(goodslist.get(i).getPrice()); ImageLoader.getInstance().displayImage(imgUrl,holder2.image); break; } return view; } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { return goodslist.get(position).getTypeId(); } } class Holder1{ TextView textview1,textView2; } class Holder2{ TextView tv_1,tv_2; ImageView image; } }
本文介绍了一个基于Android的应用程序如何配置权限、使用ButterKnife和Universal Image Loader进行图片加载,并展示了如何根据不同类型的数据创建自定义适配器来显示不同布局的商品列表。
192

被折叠的 条评论
为什么被折叠?



