PullToRefreshScrollView和Banner
来源:互联网 发布:mac修改mysql登录密码 编辑:程序博客网 时间:2024/06/05 11:28
//activitymain
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.duotiaomu.MainActivity"> <com.handmark.pulltorefresh.library.PullToRefreshScrollView android:id="@+id/refresh_scroll_view" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="250dp"></com.youth.banner.Banner> <com.example.duotiaomu.MyListView android:id="@+id/mlv" android:layout_width="match_parent" android:layout_height="match_parent"> </com.example.duotiaomu.MyListView> </LinearLayout> </com.handmark.pulltorefresh.library.PullToRefreshScrollView></RelativeLayout>//item
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ImageView android:id="@+id/img" android:layout_width="100dp" android:layout_height="100dp" /> <TextView android:id="@+id/tv_title" android:gravity="center" android:layout_width="match_parent" android:layout_height="100dp" /></LinearLayout>
//mainActivity
package com.example.duotiaomu;import android.os.Bundle;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.widget.ScrollView;import com.example.duotiaomu.Utils.MyTask;import com.example.duotiaomu.adapter.MyAdapter;import com.example.duotiaomu.bean.Result;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.ILoadingLayout;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshScrollView;import com.youth.banner.Banner;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private Banner banner; private List<String> list; private List<Result.DataEntity> lists = new ArrayList<Result.DataEntity>(); private MyAdapter adapter; private MyListView mlv; private PullToRefreshScrollView rsv; private int pageIndex = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rsv = (PullToRefreshScrollView) findViewById(R.id.refresh_scroll_view); mlv = (MyListView) findViewById(R.id.mlv); banner = (Banner) findViewById(R.id.banner); list = new ArrayList<String>(); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151721118&di=649c9a43aed72fbc4d99ec1a031510c6&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F015c7d574b9f8f6ac72525aee98351.jpg"); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151956771&di=0eb6f306991d24b67a13ceb336f80102&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farchive%2F00613def3f1beb7a35ae136341be2b589bc46a2d.jpg_320x200.jpg"); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151847685&di=c7a4b5d08ec43fa629bcb690039a7629&imgtype=0&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_080625%2F20080625_2e91a10c444877e88827vri2ZKdGMvQo.jpg"); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151825129&di=70bf74b87d8a15cb91a2d79f15ed0eaf&imgtype=0&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_081016%2F20081016_fee215664d5740e56c13E2YB8giERFEX.jpg"); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505746504&di=930c4d677a02328a142d6fa85ed14580&imgtype=jpg&er=1&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_090113%2F20090113_6ac58b42bea94f0b318e1B6BZb5lPZl5.jpg"); //设置图片加载器 banner.setImageLoader(new MImageLoader()); //设置含有图片路径的集合 banner.setImages(list); //设置延迟时间 banner.setDelayTime(3000); //是否自动轮播 banner.isAutoPlay(true); //开启 banner.start(); //请求数据 requestData(); //初使化refreshScrollView intRefreshScrollView(); } private void intRefreshScrollView() { //1.设置模式 rsv.setMode(PullToRefreshBase.Mode.BOTH); //2.通过调用getLoadingLayoutProxy方法,设置下拉刷新状况布局中显示的文字 ,第一个参数为true,代表下拉刷新 ILoadingLayout headLables = rsv.getLoadingLayoutProxy(true, false); headLables.setPullLabel("下拉刷新"); headLables.setRefreshingLabel("正在刷新"); headLables.setReleaseLabel("松开刷新"); //2.设置上拉加载底部视图中显示的文字,第一个参数为false,代表上拉加载更多 ILoadingLayout footerLables = rsv.getLoadingLayoutProxy(false, true); footerLables.setPullLabel("上拉加载"); footerLables.setRefreshingLabel("正在载入..."); footerLables.setReleaseLabel("松开加载更多"); //3.设置监听事件 rsv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) { addToTop(); refreshComplete(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) { addToBottom(); refreshComplete(); } }); } public void refreshComplete() { new Handler().postDelayed(new Runnable() { @Override public void run() { rsv.onRefreshComplete(); } }, 1000); } public void addToBottom() { pageIndex = pageIndex + 20; MyTask myTask = new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr) { Gson gson = new Gson(); Result result = gson.fromJson(jsonstr, Result.class); //添加到集合中 lists.addAll(result.getData()); //设置适配器 setAdapter(); } }); myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=" + pageIndex); } public void addToTop() { MyTask myTask = new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr) { Gson gson = new Gson(); Result result = gson.fromJson(jsonstr, Result.class); //清空集合 lists.clear(); //添加到集合中 lists.addAll(0, result.getData()); //设置适配器 setAdapter(); } }); myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0"); } private void requestData() { MyTask myTask = new MyTask(new MyTask.Icallbacks() { @Override public void updateUiByjson(String jsonstr) { Gson gson = new Gson(); Result result = gson.fromJson(jsonstr, Result.class); lists.addAll(result.getData()); setAdapter(); } }); myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0"); } public void setAdapter() { if (adapter == null) { adapter = new MyAdapter(lists, MainActivity.this); mlv.setAdapter(adapter); } else { adapter.notifyDataSetChanged(); } }}//adapter
package com.example.duotiaomu.adapter;import android.content.Context;import android.graphics.Bitmap;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.example.duotiaomu.R;import com.example.duotiaomu.bean.Result;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;public class MyAdapter extends BaseAdapter { private List<Result.DataEntity> datas; private Context context; private DisplayImageOptions options; public MyAdapter(List<Result.DataEntity> datas, Context context) { this.datas = datas; this.context = context; options = new DisplayImageOptions.Builder() .cacheInMemory(true)//使用内存缓存 .cacheOnDisk(true)//使用磁盘缓存 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片格式 .build(); } @Override public int getCount() { return datas.size(); } @Override public Object getItem(int position) { return datas.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { convertView = View.inflate(context, R.layout.item, null); holder = new ViewHolder(); holder.tvTitle = (TextView) convertView.findViewById(R.id.tv_title); holder.img = (ImageView) convertView.findViewById(R.id.img); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.tvTitle.setText(datas.get(position).getTITLE()); if (datas.get(position).getIMAGEURL() == null || datas.get(position).getIMAGEURL().equals("")) { holder.img.setImageResource(R.mipmap.ic_launcher); } else { //imageLoader加载图片 ImageLoader.getInstance().displayImage(datas.get(position).getIMAGEURL(), holder.img, options); } return convertView; } class ViewHolder { TextView tvTitle; ImageView img; }}//mylistview
package com.example.duotiaomu;import android.content.Context;import android.util.AttributeSet;import android.widget.ListView;public class MyListView extends ListView { public MyListView(Context context) { super(context); } public MyListView(Context context, AttributeSet attrs) { super(context, attrs); } public MyListView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); }}//banner其他观看banner
imageLoader
MyTask
//treamToStirng
//App
//清单文件
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
阅读全文
0 0
- PullToRefreshScrollView和Banner
- PullToRefreshScrollView+Banner+banner.Listview
- PullToRefreshScrollView的使用 +Banner
- Banner+1PullToRefreshScrollView
- banner控件实现无线轮播+PullToRefreshScrollView 轮播图和listview跟着一起刷新
- fragment+TabLayut+PullToRefreshScrollView+banner+listview+网络判断
- PullToRefreshScrollView
- PullToRefreshScrollView
- PullToRefreshScrollView
- PullToRefreshScrollView
- PullToRefreshScrollView
- PullToRefreshScrollView
- PullToRefreshScrollView和listview的冲突
- Android 开发中PullToRefreshScrollView上拉刷新,Banner实现无限轮播
- PullToRefreshScrollView刷新图标和字体的设定
- Banner使用和Banner点击事件
- Banner
- banner
- Cookie/Session机制详解
- android TabLayout的简单使用
- 最全的JS DOM操作集合
- Android笔试面试指南
- 观察者模式
- PullToRefreshScrollView和Banner
- 普元EOS之我要初始化数据库
- redis学习系列(八)--redis-AOF基础
- CSS3实现三角形
- ASP.NET的DataList和Repeater控件
- python-sklearn中RandomForestClassifier函数以及ROC曲线绘制
- 通过代码认识openstack 环境中连接到rabbit服务器
- JavaScript继承的方式
- Node.js学习笔记(一)安装