//MyListView
public class MyListView extends ListView{
private MyListView listView;
public MyListView(Context context) {
super(context);
}
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, height);
}
}
//适配
public class FragmentAdapter extends FragmentPagerAdapter{
private List<Fragment>list;
public FragmentAdapter(FragmentManager fm, List<Fragment> list) {
super(fm);
this.list=list;
}
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
}
//大小图的适配
public class OneAdapter extends BaseAdapter{
private Context context;
private List<OneBean.DataBean>list;
public OneAdapter(Context context, List<OneBean.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 type=getItemViewType(position);
switch (type){
case 0:
BigViewHolder bigViewHolder;
if (convertView==null){
convertView=View.inflate(context, R.layout.big_layout,null);
ImageView small=convertView.findViewById(R.id.small_pic);
TextView title=convertView.findViewById(R.id.title);
ImageView big=convertView.findViewById(R.id.big_pic);
bigViewHolder=new BigViewHolder(small,title,big);
convertView.setTag(bigViewHolder);
}else {
bigViewHolder= (BigViewHolder) convertView.getTag();
}
OneBean.DataBean dataBean=list.get(position);
String big_url=dataBean.getBimageuri();
String small_url=dataBean.getImage_small();
String title=dataBean.getText();
ImageLoader.getInstance().displayImage(small_url,bigViewHolder.getSmall(), MyApp.getOptions());
ImageLoader.getInstance().displayImage(big_url,bigViewHolder.getBig(),MyApp.getOptions());
bigViewHolder.getTitle().setText(title);
break;
case 1:
SmallViewHolder smallViewHolder;
if (convertView==null){
convertView=View.inflate(context,R.layout.small_layout,null);
ImageView small1=convertView.findViewById(R.id.xiao_pic);
TextView title1=convertView.findViewById(R.id.t_title);
smallViewHolder=new SmallViewHolder(small1,title1);
convertView.setTag(smallViewHolder);
}else {
smallViewHolder=(SmallViewHolder)convertView.getTag();
}
OneBean.DataBean dataBean1=list.get(position);
String small_url1=dataBean1.getProfile_image();
String title1=dataBean1.getText();
ImageLoader.getInstance().displayImage(small_url1,smallViewHolder.getXpic(), MyApp.getOptions());
smallViewHolder.getTxiao().setText(title1);
break;
}
return convertView;
}
@Override
public int getItemViewType(int position) {
String type = list.get(position).getType();
if (type.equals("41")) {
return 0;
}
return 1;
}
@Override
public int getViewTypeCount() {
return 2;
}
class BigViewHolder{
private ImageView small;
private TextView title;
private ImageView big;
public BigViewHolder(ImageView small, TextView title, ImageView big) {
this.small = small;
this.title = title;
this.big = big;
}
public ImageView getSmall() {
return small;
}
public void setSmall(ImageView small) {
this.small = small;
}
public TextView getTitle() {
return title;
}
public void setTitle(TextView title) {
this.title = title;
}
public ImageView getBig() {
return big;
}
public void setBig(ImageView big) {
this.big = big;
}
}
class SmallViewHolder{
private ImageView xpic;
private TextView txiao;
public SmallViewHolder(ImageView xpic, TextView txiao) {
this.xpic = xpic;
this.txiao = txiao;
}
public ImageView getXpic() {
return xpic;
}
public void setXpic(ImageView xpic) {
this.xpic = xpic;
}
public TextView getTxiao() {
return txiao;
}
public void setTxiao(TextView txiao) {
this.txiao = txiao;
}
}
}
//轮番图的适配
public class AdAdapter extends PagerAdapter{
private List<ImageView>list;
public AdAdapter(List<ImageView> list) {
this.list = list;
}
@Override
public int getCount() {
if (list!=null&&list.size()>0){
return Integer.MAX_VALUE;
}
return 0;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
position = position % list.size();
ImageView imageView = list.get(position);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((ImageView) object);
}
}
//子布局的适配
public class BookAdapter extends BaseAdapter{
private Context context;
private List<BookBean.DataBean>list;
public BookAdapter(Context context, List<BookBean.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) {
ViewHolder viewHolder;
if (convertView==null){
convertView=View.inflate(context, R.layout.item_layout,null);
ImageView pic=convertView.findViewById(R.id.item_pic);
TextView title=convertView.findViewById(R.id.title);
TextView sum=convertView.findViewById(R.id.sum);
viewHolder=new ViewHolder(pic,title,sum);
convertView.setTag(viewHolder);
}else {
viewHolder=(ViewHolder)convertView.getTag();
}
String url = list.get(position).getBook_cover();
ImageLoader.getInstance().displayImage(url, viewHolder.getImageView(), MyApp.getOptions());
viewHolder.getTitle().setText(list.get(position).getBookname());
viewHolder.getSum().setText(list.get(position).getIntroduction());
return convertView;
}
class ViewHolder{
private ImageView imageView;
private TextView title;
private TextView sum;
public ViewHolder(ImageView imageView, TextView title, TextView sum) {
this.imageView = imageView;
this.title = title;
this.sum = sum;
}
public ImageView getImageView() {
return imageView;
}
public void setImageView(ImageView imageView) {
this.imageView = imageView;
}
public TextView getTitle() {
return title;
}
public void setTitle(TextView title) {
this.title = title;
}
public TextView getSum() {
return sum;
}
public void setSum(TextView sum) {
this.sum = sum;
}
}
}
//工具
public class HttpUtils {
private static final String TAG = "HttpUtils---";
private MyHandler myHandler = new MyHandler();
private static final int SUCCESS = 0;
private static final int ERROR = 1;
//单利
private static HttpUtils httpUtils = new HttpUtils();
private HttpUtilListener httpUtilsListener;
private HttpUtils() {
}//构造方法私有化
public static HttpUtils getInstance() {
if (httpUtils == null) {
httpUtils = new HttpUtils();
}
return httpUtils;
}
//封装get
public void get(final String url) {
new Thread() {
@Override
public void run() {
try {
URL u = new URL(url);
HttpURLConnection connection = (HttpURLConnection) u.openConnection();
connection.setConnectTimeout(3000);
if (connection.getResponseCode() == 200) {
InputStream inputStream = connection.getInputStream();
String json = inputStream2String2(inputStream);
//发送数据
Message message = myHandler.obtainMessage();
message.what = SUCCESS;
message.obj = json;
myHandler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
Message message = myHandler.obtainMessage();
message.what = ERROR;
message.obj = e.getMessage();
myHandler.sendMessage(message);
}
}
}.start();
}
class MyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SUCCESS:
//成功
String json = (String) msg.obj;
Log.d(TAG, "handleMessage: " + json);
httpUtilsListener.getSuccess(json);
break;
case ERROR:
//失败
String error = (String) msg.obj;
Log.d(TAG, "handleMessage: " + error);
httpUtilsListener.getError(error);
break;
}
}
}
//1.定义接口
public interface HttpUtilListener {
void getSuccess(String json);
void getError(String error);
}
//2.外部访问的方法
public void setHttpUtilsListener(HttpUtilListener httpUtilsListener) {
this.httpUtilsListener = httpUtilsListener;
}
//将流--字符串
public String inputStream2String(InputStream inputStream) {
int len = 0;
byte[] butter = new byte[1024];
StringBuffer stringBuffer = new StringBuffer();
try {
while ((len = inputStream.read(butter)) != -1) {
String s = new String(butter, 0, len);
stringBuffer.append(s);
}
} catch (Exception e) {
e.printStackTrace();
}
return stringBuffer.toString();
}
//将流--字符串 使用字符流--部分乱码
public String inputStream2String2(InputStream inputStream) {
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
StringBuffer sr = new StringBuffer();
try {
String s = null;
while ((s = br.readLine()) != null) {
sr.append(s);
}
} catch (Exception e) {
e.printStackTrace();
}
return sr.toString();
}
}
//APP
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(false) // default
.cacheOnDisk(false) // default
.displayer(new SimpleBitmapDisplayer()) // default
.handler(new Handler()) // default
.build();
return options;
}
}