无限自动轮播加小圆点
private PullToRefreshScrollView psv;
private ViewPager vp;
private GridView gv;
private List picUrls;
private int pageIndex=1;
private String url="http://gank.io/api/data/Android/10/"+pageIndex;
@SuppressLint("HandlerLeak")
private Handler myHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//改变viewpager的页面
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
//设置选中的小圆点
setSelectedPoint(currentItem%points.size());
sendEmptyMessageDelayed(0,1000);
}
};
private LinearLayout linPoints;
private List
private int pageType=1;
private List
private MyGvAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
psv = findViewById(R.id.psv);
vp = findViewById(R.id.vp);
gv = findViewById(R.id.gv);
linPoints = findViewById(R.id.lin);
initData();
//初使化
initPsv();
//初使化小圆点
initPoints();
//实现轮播图
vp.setAdapter(new MyPagerAdapter(this,picUrls));
//自动播
myHandler.sendEmptyMessageDelayed(0,1000);
//连接网络请求数据
requestNetData();
}
private void initPsv() {
//1.设置模式
psv.setMode(PullToRefreshBase.Mode.BOTH);
//2.添加监听事件
psv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2() {
@Override
public void onPullDownToRefresh(PullToRefreshBase pullToRefreshBase) {
//刷新
pageType=1;
pageIndex=1;
url="http://gank.io/api/data/Android/10/"+pageIndex;
requestNetData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase pullToRefreshBase) {
//加载更多
pageType=2;
pageIndex++;
url="http://gank.io/api/data/Android/10/"+pageIndex;
requestNetData();
}
});
}
private String toJson(InputStream inputStream) {
StringBuilder builder = new StringBuilder();
String string;
InputStreamReader in = new InputStreamReader(inputStream);
BufferedReader reader = new BufferedReader(in);
try {
while ((string=reader.readLine())!=null){
builder.append(string);
}
} catch (Exception e) {
e.printStackTrace();
}
return builder.toString();
}
private void requestNetData() {
new MyTask().execute(url);
}
//定义一个MyTask
class MyTask extends AsyncTask {
@Override
protected String doInBackground(String... strings) {
String str="";
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
int responseCode = urlConnection.getResponseCode();
if (responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
str=toJson(inputStream);
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
RequestData requestData = https://www.it610.com/article/gson.fromJson(s, RequestData.class);
List
if (pageType==1){
data.clear();
}
data.addAll(results);
setgvadapter();
//关闭头尾布局
psv.onRefreshComplete();
}
}
private void setgvadapter() {
if(adapter==null){
adapter=new MyGvAdapter(this,data);
gv.setAdapter(adapter);
}else {
adapter.notifyDataSetChanged();
}
}
/**
*
* @param pageIndex 当前页面的下标
*/
private void setSelectedPoint(int pageIndex){
for (int i = 0;
i 【无限自动轮播加小圆点】if(i==pageIndex){
points.get(i).setImageResource(R.drawable.point_selected);
}else {
points.get(i).setImageResource(R.drawable.point_mormal);
}
}
}
private void initPoints() {
//向linelayout中添加ImageView
//addView()
for (int i = 0;
i ImageView imageView=new ImageView(this);
if(i==0){
imageView.setImageResource(R.drawable.point_selected);
//选中时的图片
}else {
imageView.setImageResource(R.drawable.point_mormal);
}
linPoints.addView(imageView);
//添加到集合
points.add(imageView);
}
}
private void initData() {
picUrls=new ArrayList<>();
picUrls.add("http://img3.utuku.china.com/480x0/news/20170331/5228a6f9-5b0a-431a-b7b6-1d712ab7c86d.jpg");
picUrls.add("http://s16.sinaimg.cn/mw690/001pPXi2gy6W1BdDgujcf&690");
picUrls.add("http://img1.gtimg.com/ent/pics/hv1/213/155/1650/107330988.jpg");
picUrls.add("http://mat1.gtimg.com/ent/109a/64004.jpg");
}
推荐阅读
- 宽容谁
- 尽力
- 讲述,美丽聪明的海欧!
- 夜游宫|夜游宫 心语
- 画画吗()
- 艾略特的交易法则“遵循自然规律”
- 猎杀IP
- 陇上秋二|陇上秋二 罗敷媚
- 图书集合完毕
- 牛人进化+|牛人进化+ 按自己的意愿过一生