首先创建小圆点

小圆点的两个属性一共两个属性另一个跟这个一个样,只不过颜色能让我们区分的

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

<corners android:radius="8dp" />

<solid android:color="#e2061c" />

</shape>

接着小圆点的布局是一下自己看吧

<?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">

<View
        android:id="@+id/scrollView"
        android:layout_width="8dp"
        android:layout_height="8dp"
        android:layout_margin="8dp"
        android:background="@drawable/dots_normal"
        />

</LinearLayout>

下面是main.xml里面的布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   >
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v4.view.ViewPager>
    <LinearLayout
        android:id="@+id/ll"
        android:layout_marginTop="450dp"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="20dp"/>

<Button
        android:id="@+id/bt_tiao"
        android:text="主页"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>

//获取图片需要图片的包

Universal-Image-Loader

下面是代码

public class MyApp extends Application{

@Override
    public void onCreate() {
        super.onCreate();

ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this);
        ImageLoader.getInstance().init(configuration);
    }
}

Universal-Image-Loader  导入包

添加权限

<uses-permission android:name="android.permission.INTERNET" />

android:name="MyApp"

下面是src中的代码

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.bwie.bean.SuperClass;
import com.bwie.utils.NetWorkUtils;
import com.bwie.utils.URLDB;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity {

private ViewPager viewPager;
    private Button bt;
    private LinearLayout layout;
    private List<SuperClass.NewslistBean> data;
    private NetWorkUtils netWorkUtils = new NetWorkUtils();//实例化工具类
    private List<ImageView>imgs = new ArrayList<ImageView>();//图片的集合
    private List<View> dots = new ArrayList<View>(); //小圆点集合
    private int i = 0;
    private int dot = 0;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

viewPager.setCurrentItem(i);//得到传过来的值
            dots.get(dot).setBackgroundResource(R.drawable.dots_normal);
            dots.get(i%imgs.size()).setBackgroundResource(R.drawable.dots_focus);
            dot=i%imgs.size();
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//异步网络请求
        new AsyncTask<String,Integer,String>(){

@Override
            protected String doInBackground(String... params) {
                String json = netWorkUtils.getJsonHttpConnetion(接口);
                return json;
            }
            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                --------通过添加gson包进行解析------
                init();//初始化方法
            }
        }.execute();
    }
    //初始化方法
    private void init() {
        viewPager = (ViewPager) findViewById(R.id.viewPager);//获取组件
        layout = (LinearLayout) findViewById(R.id.ll);
        getImgs();//获取图片
        getDots();//获取小圆点
        //viewPager适配器
        viewPager.setAdapter(new PagerAdapter() {
            @Override
            public int getCount() {
                return Integer.MAX_VALUE;//最大值
            }

@Override
            public boolean isViewFromObject(View view, Object object) {
                return view==object;
            }

@Override
            public Object instantiateItem(ViewGroup container, int position) {

int i = position % imgs.size();
                ImageView imageView = imgs.get(i);
                imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                container.addView(imageView);
                return imageView;
            }

@Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                container.removeView((View) object);
            }
        });
        //设置初始化位置
        i = imgs.size()*10;
        //得到位置
        viewPager.setCurrentItem(i);
        //设置第一个圆点为true
        dots.get(0).setBackgroundResource(R.drawable.dots_focus);
        //timer自动轮播
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                i = viewPager.getCurrentItem() + 1;//
                handler.sendEmptyMessage(i);//发送数据
            }
        },1,2000);
    }

//图片的方法
    private void getImgs() {

for(int i = 0;i<data.size();i++){
            String picUrl = data.get(i).getPicUrl();
            ImageView img = new ImageView(this);
            img.setScaleType(ImageView.ScaleType.FIT_XY);
            ImageLoader.getInstance().displayImage(picUrl,img);
            imgs.add(img);
        }
    }
    //小圆点的方法
    private void getDots() {

for(int i=0;i<imgs.size();i++){
            View view = LayoutInflater.from(this).inflate(R.layout.dot_item,null);
            View viewById = view.findViewById(R.id.scrollView);
            dots.add(viewById);
            layout.addView(view);
        }
    }
}

多多支持多多点赞

 
1

viewpager无线轮播获取网络图片的更多相关文章

  1. Android之自定义ViewPager实现图片的无线轮播

    PS:以前也写过关于图片轮播这一块的博客.不过写的很烂,并且很多情况没有考虑到(没有支持无线轮播,和手势点击事件).因此这里写一篇补上.也是当时太年轻了. 注:图片请放大后再看.否则看不清楚. 学习内 ...

  2. URL转Drawable之 Android中获取网络图片的三种方法

    转载自: http://doinone.iteye.com/blog/1074283 Android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Applicatio ...

  3. ViewPager自动轮播

    Android使用ViewPager实现左右循环滑动及轮播效果   ViewPager是一个常用的android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候 ...

  4. Android使用ViewPager做轮播

    ViewPager.html div.oembedall-githubrepos { border: 1px solid #DDD; list-style-type: none; margin: 0 ...

  5. iOS 获取网络图片的大小

    一直都在找关于获取网络图片的大小的方法, 今天找到了一个能解决的办法 ,如下 1, 导入框架 #import <ImageIO/ImageIO.h> 2. 使用此方法得到image的siz ...

  6. 分享一个安卓中异步获取网络图片并自适应大小的第三方程序(来自github)

    安卓中获取网络图片,生成缓存 用安卓手机,因为手机流量的限制,所以我们在做应用时,要尽量为用户考虑,尽量少耗点用户的流量,而在应用中网络图片的显示无疑是消耗流量最大的,所以我们可以采取压缩图片或者将图 ...

  7. Android开发之ViewPager实现轮播图(轮播广告)效果的自定义View

    最近开发中需要做一个类似京东首页那样的广告轮播效果,于是采用ViewPager自己自定义了一个轮播图效果的View. 主要原理就是利用定时任务器定时切换ViewPager的页面. 效果图如下: 主页面 ...

  8. 获取网络图片的大小 改变 图片色值 灰度什么的方法集合-b

    直接上代码了 头文件 // 图片处理 0 半灰色  1 灰度   2 深棕色    3 反色 +(UIImage*)imageWithImage:(UIImage*)image grayLevelTy ...

  9. cocos2d-x C++ 获取网络图片缓存并展示

    #ifndef __HttpGetImg__ #define __HttpGetImg__ #include "cocos2d.h" #include "HttpRequ ...

随机推荐

  1. Poor Hanamichi

    Poor Hanamichi Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  2. 小a和uim之大逃离(洛谷 1373)

    题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...

  3. BIV+CSS网页的标准化布局

    DIV用于搭建网站结构(框架),CSS用于创建网站表现(样式/美化) DIV+CSS模式设计网站的优势: 1.表现和内容分离. 2代码简洁,提高网页浏览速度. 3.易于维护,改版. 4.提高搜索引擎对 ...

  4. Weblogic补丁升级操作手冊

    1.查看Weblogic版本号 方法一 [weblogic@Weblogic201 ~]$ cd /home/weblogic/Oracle/Middleware/wlserver_10.3/serv ...

  5. 2 instances of postgresql but I really need one [closed]

    I happen to have 2 installed instances of postgresql at my machine: 9.1 and 9.2: sudo service postgr ...

  6. webrtc 视频 demo

    webrtc 视频 demo webrtc网上封装的很多,demo很多都是一个页面里实现的,今天实现了个完整的 , A 发视频给 B A webrtc.html作为offer <!DOCTYPE ...

  7. 大写金额换算器iOS版源码

    大写金额换算器iOS版源码 人民币金额大写转换器输入数字就可以转换成相应的人民币大写金额,操作很easy,需一键点击,就可以复制. 是財务办公人员必备的小工具. 银行.单位和个人填写的各种票据和结算凭 ...

  8. 解决openresty http客户端不支持https的问题

    OpenResty默认没有提供Http客户端,需要使用第三方提供:当然我们可以通过ngx.location.capture 去方式实现,但它只能发送一个子请求. 第三方基本是以lua-resty-ht ...

  9. 使用 Jenkins + GitHub + Nginx + HTTPS 搭建静态网站

    参考https://www.imooc.com/article/20079 http://www.haoduoyu.cc/

  10. etcd磁盘清理步骤

    etcd默认的空间配额限制为2G,超出空间配额限制就会影响服务,所以需要定期清理 以下是etcd磁盘清理的步骤: 1. 显示空间配额: ETCDCTL_API=3 etcdctl --endpoint ...