public class MainActivity extends AppCompatActivity {
private String path="http://zkread.com/htnewsroom/v2.0/mobileapp/user-0/categories/articles?itemType=recommendation&itemName=%25E6%258E%25A8%25E8%258D%2590&itemId=-1&page=1&size=20&firstId=1338557";
private ListView mlistview;
private List<Data.DataBean.ArticleListBean> mlist;
private Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
String result=msg.obj.toString();
Gson gson=new Gson();
Data data = gson.fromJson(result, Data.class);
mlist.addAll(data.getData().getArticleList());
myBaseAdapter.notifyDataSetChanged();
}
};
private MyBaseAdapter myBaseAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mlistview= (ListView) findViewById(R.id.list);
mlist = new ArrayList<>();
myBaseAdapter = new MyBaseAdapter(mlist, MainActivity.this);
mlistview.setAdapter(myBaseAdapter);
dataLoad();
}
private void dataLoad() {
new Thread(){
@Override
public void run() {
super.run();
String url=NetUtils.getUrlConnect(path);
Message msg=Message.obtain();
msg.what=0;
msg.obj=url;
mHandler.sendMessage(msg);
}
}.start();
}
}
public class MyBaseAdapter extends BaseAdapter {
List<Data.DataBean.ArticleListBean> mlist;
Context context;
private final DisplayImageOptions options;
private final ImageLoader imageLoader;
//1 初始化ImageLoader
public MyBaseAdapter(List<Data.DataBean.ArticleListBean> mlist, Context context) {
this.context = context;
this.mlist = mlist;
//初始化ImageLoaderConfiguration对象 传一个上下文
ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(context);
// 放在构造器中初始化
imageLoader = ImageLoader.getInstance();
//初始化的方法 必须写的不写会报错 传一个configuration对象
imageLoader.init(configuration);
//下面是对imageloader 的配置
//拿到DisplayImageOptions.Builder()对象进行配置
options = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.bitmapConfig(Bitmap.Config.ARGB_8888)
.showImageOnLoading(R.mipmap.ic_launcher)
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnFail(R.mipmap.ic_launcher)
.build();
}
@Override
public int getCount() {
return mlist.size();
}
@Override
public Object getItem(int position) {
return mlist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewsHolder holder = null;
if (convertView == null) {
convertView = View.inflate(context, R.layout.item, null);
holder = new ViewsHolder();
holder.textView = (TextView) convertView.findViewById(R.id.tv);
holder.image = (ImageView) convertView.findViewById(R.id.image);
convertView.setTag(holder);
} else {
holder = (ViewsHolder) convertView.getTag();
}
Data.DataBean.ArticleListBean bean = mlist.get(position);
holder.textView.setText(bean.getImgSrc());
//判断获得的图片不能为空 或者是以 http开头
// if(bean.getImgSrc()!=null||bean.getImgSrc().startsWith("http")){
// //赋值
// imageLoader.displayImage(bean.getImgSrc(),holder.image);
// }
imageLoader.displayImage(bean.getImgSrc(), holder.image, options);
return convertView;
}
class ViewsHolder {
ImageView image;
TextView textView;
}
}
public class NetUtils {
public static String postUrlConnect(String urlPath, Map<String,Object> map){
StringBuffer sbRequest =new StringBuffer();
if(map!=null&&map.size()>0){
for (String key:map.keySet()){
sbRequest.append(key+"="+map.get(key)+"&");
}
}
String request = sbRequest.substring(0,sbRequest.length()-1);
try {
//创建URL
URL url = new URL(urlPath);
//由URL的openConnection方法得到一个HttpURLConnection(需要强转)
HttpURLConnection httpURLConnection =
(HttpURLConnection) url.openConnection();
//设置post提交
httpURLConnection.setRequestMethod("POST");
//设置超时时间
httpURLConnection.setConnectTimeout(30000);
httpURLConnection.setReadTimeout(30000);
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
//把请求正文通过OutputStream发出去
OutputStream os =httpURLConnection.getOutputStream();
os.write(request.getBytes());
os.flush();
//判断响应码 200 代表成功
if(httpURLConnection.getResponseCode()==200){
//由HttpURLConnection拿到输入流
InputStream in=httpURLConnection.getInputStream();
StringBuffer sb=new StringBuffer();
//根据输入流做一些IO操作
byte [] buff =new byte[1024];
int len=-1;
while((len=in.read(buff))!=-1){
sb.append(new String(buff,0,len,"utf-8"));
}
in.close();
os.close();
httpURLConnection.disconnect();
return sb.toString();
}else{
return null;
}
}catch (Exception e){
Log.e("post","code:"+e.getMessage());
return null;
}
}
/**
* HttpURLConnection的get请求
* @param urlPath
* @return
*/
public static String getUrlConnect(String urlPath){
try {
//创建URL
URL url = new URL(urlPath);
//由URL的openConnection方法得到一个HttpURLConnection(需要强转)
HttpURLConnection httpURLConnection =
(HttpURLConnection) url.openConnection();
//设置连接
httpURLConnection.connect();
//判断响应码 200 代表成功
if(httpURLConnection.getResponseCode()==200){
//由HttpURLConnection拿到输入流
InputStream in=httpURLConnection.getInputStream();
StringBuffer sb=new StringBuffer();
//根据输入流做一些IO操作
byte [] buff =new byte[1024];
int len=-1;
while((len=in.read(buff))!=-1){
sb.append(new String(buff,0,len,"utf-8"));
}
in.close();
httpURLConnection.disconnect();
return sb.toString();
}else{
return null;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
imageloader的使用
最新推荐文章于 2018-12-18 11:56:01 发布