package zhanghaijiao.bawei.com.httpget_demo;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.MalformedURLException;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
/**
* Created by jane on 2017/12/26.
*/
public class MyAdapter extends BaseAdapter {
public Context context;
public List<ResultData.NewslistBean> data;
private final DisplayImageOptions options;
//定义类型的int int值必须 小于 item类型的数量,否则会报数组越界的error
private final int ITEM_TITLE=0;//只有文字无图的类型
private final int ITEM_IMAGE=1;//有图的类型
//alt+insert
public MyAdapter(Context context, List<ResultData.NewslistBean> data) {
this.context = context;
this.data = data;
//2.需要创建DisplayImageOption类 两种 1,使用默认设置 2.自定义设置
//使用内存缓存
//使用磁盘缓存
//设置正在下载的图片
//url为空或请求的资源不存在时
//下载失败时显示的图片
//设置图片色彩模式 1px=2字节
//设置图片的缩放模式
//设置圆角 30代表半径 自定义
options = new DisplayImageOptions.Builder()
.cacheInMemory(true)//使用内存缓存
.cacheOnDisk(true)//使用磁盘缓存
.showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
.showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
.showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 1px=2字节
.imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
.displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义
.build();
}
//返回item的类型总数 多条目的数量
@Override
public int getViewTypeCount() {
return 2;
}
//返回指定postion的条目的类型,返回的是一个int类型的值
@Override
public int getItemViewType(int position) {
if(position%2==0){//是偶数
return ITEM_IMAGE;
}else{
return ITEM_TITLE;//奇数行
}
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return data.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
//根据不同的类型,去加载不同的布局
int type = getItemViewType(i);
if(type==ITEM_IMAGE){
ViewHolder holder;
if(view==null){
view=View.inflate(context,R.layout.item,null);
holder=new ViewHolder();
holder.tv=view.findViewById(R.id.tv);
holder.imageView=view.findViewById(R.id.img);
view.setTag(holder);
}else{
holder=(ViewHolder) view.getTag();
}
holder.tv.setText(data.get(i).getTitle());
//打印图片url路径
Log.d("zzz",data.get(i).getPicUrl());
//3.下载图片
ImageLoader.getInstance().displayImage(data.get(i).getPicUrl(),holder.imageView,options);
return view;
}else {
ViewHolderTitle holderTitle;
if(view==null){
view=View.inflate(context,R.layout.item_title,null);
holderTitle=new ViewHolderTitle();
holderTitle.textView=view.findViewById(R.id.tv);
view.setTag(holderTitle);
}else{
holderTitle=(ViewHolderTitle) view.getTag();
}
holderTitle.textView.setText(data.get(i).getTitle());
return view;
}
}
//item里的控件
class ViewHolder{
TextView tv;
ImageView imageView;
}
//item_title
class ViewHolderTitle{
TextView textView;
}
}
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.MalformedURLException;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
/**
* Created by jane on 2017/12/26.
*/
public class MyAdapter extends BaseAdapter {
public Context context;
public List<ResultData.NewslistBean> data;
private final DisplayImageOptions options;
//定义类型的int int值必须 小于 item类型的数量,否则会报数组越界的error
private final int ITEM_TITLE=0;//只有文字无图的类型
private final int ITEM_IMAGE=1;//有图的类型
//alt+insert
public MyAdapter(Context context, List<ResultData.NewslistBean> data) {
this.context = context;
this.data = data;
//2.需要创建DisplayImageOption类 两种 1,使用默认设置 2.自定义设置
//使用内存缓存
//使用磁盘缓存
//设置正在下载的图片
//url为空或请求的资源不存在时
//下载失败时显示的图片
//设置图片色彩模式 1px=2字节
//设置图片的缩放模式
//设置圆角 30代表半径 自定义
options = new DisplayImageOptions.Builder()
.cacheInMemory(true)//使用内存缓存
.cacheOnDisk(true)//使用磁盘缓存
.showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
.showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
.showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 1px=2字节
.imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
.displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义
.build();
}
//返回item的类型总数 多条目的数量
@Override
public int getViewTypeCount() {
return 2;
}
//返回指定postion的条目的类型,返回的是一个int类型的值
@Override
public int getItemViewType(int position) {
if(position%2==0){//是偶数
return ITEM_IMAGE;
}else{
return ITEM_TITLE;//奇数行
}
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return data.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
//根据不同的类型,去加载不同的布局
int type = getItemViewType(i);
if(type==ITEM_IMAGE){
ViewHolder holder;
if(view==null){
view=View.inflate(context,R.layout.item,null);
holder=new ViewHolder();
holder.tv=view.findViewById(R.id.tv);
holder.imageView=view.findViewById(R.id.img);
view.setTag(holder);
}else{
holder=(ViewHolder) view.getTag();
}
holder.tv.setText(data.get(i).getTitle());
//打印图片url路径
Log.d("zzz",data.get(i).getPicUrl());
//3.下载图片
ImageLoader.getInstance().displayImage(data.get(i).getPicUrl(),holder.imageView,options);
return view;
}else {
ViewHolderTitle holderTitle;
if(view==null){
view=View.inflate(context,R.layout.item_title,null);
holderTitle=new ViewHolderTitle();
holderTitle.textView=view.findViewById(R.id.tv);
view.setTag(holderTitle);
}else{
holderTitle=(ViewHolderTitle) view.getTag();
}
holderTitle.textView.setText(data.get(i).getTitle());
return view;
}
}
//item里的控件
class ViewHolder{
TextView tv;
ImageView imageView;
}
//item_title
class ViewHolderTitle{
TextView textView;
}
}