{"id":17688221,"url":"https://github.com/ccapton/android-bannerview","last_synced_at":"2025-03-30T21:28:01.266Z","repository":{"id":176302359,"uuid":"89561388","full_name":"Ccapton/Android-BannerView","owner":"Ccapton","description":"Android自动轮播的控件BannerView,可加载各种数据源的图片","archived":false,"fork":false,"pushed_at":"2017-07-02T11:07:50.000Z","size":3690,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-06T01:41:22.927Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ccapton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-27T06:01:52.000Z","updated_at":"2020-07-30T06:45:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"f51b5597-8511-4ca4-89fa-a2c2e63cd324","html_url":"https://github.com/Ccapton/Android-BannerView","commit_stats":null,"previous_names":["ccapton/android-bannerview"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FAndroid-BannerView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FAndroid-BannerView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FAndroid-BannerView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FAndroid-BannerView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ccapton","download_url":"https://codeload.github.com/Ccapton/Android-BannerView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246382603,"owners_count":20768236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-24T11:43:49.401Z","updated_at":"2025-03-30T21:28:01.243Z","avatar_url":"https://github.com/Ccapton.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BannerView\nExtends from my another repository\"AutoPlayViewpager\"\n\nBannerView从我的初始项目AutoPlayViewpager改进而来\n\n\u003e 关于我，欢迎关注  \n  博客：ccapton(http://blog.csdn.net/ccapton) 微信：[Ccapton]()   \n \n### 简介: \n\n这是一个自动轮播的控件，能加载网络图片，本地图片，程序资源包图片。\n\n\n### 示例:  \n\n![](https://raw.githubusercontent.com/Ccapton/BannerView/master/S70427-17105775.gif) \n\n\n\n### 特性 \n加入了可见的圆点指示器，可定制其尺寸（三种），颜色（不限），播放时间间隔，相对位置（左，中，右）。\n改进：无限播放与滑动，初始化后加载图片数据即可实现轮播效果，再添加点击事件监听器即可。\n### 原理说明\n\n这是一个自定义BannerView继承自RelativeLayout，子View为ViewPage和Indicator(继承自RelativeLayout)。通过自定义View：Indicator，\n动态添加其子View：Dot（自定义View,继承自ImageView），作为圆点指示器。通过子View ：ViewPager的OnPageChangeListener监听其滑动状态，\n进而动态绘制圆点指示器，达到指示效果；通过添加线程，隔一段时间跳转ViewPager到下一页面达到播放效果。\n### 如何配置\nbuild.gradle(Project)\n``` code\nallprojects {\n\t\trepositories {\n\t\t\t...\n\t\t\tmaven { url 'https://jitpack.io' }\n\t\t}\n\t}\n```\nbuild.gradle(Module:app)\n``` code\n dependencies {\n\t         compile 'com.github.Ccapton:Android-BannerView:1.0.1'\n\t}\n```\n\n### 公共方法\n\n``` code\nloadUrl(ArrayList\u003cString\u003e urlList)//加载网络图片地址，只需要把地址集合添加进去就行了。\n//设置图片点击事件监听器，可以让Activity实现BannerView.OnItemClickListener 接口，然后 bannerView.setOnItemClickListener(this);\nsetOnItemClickListener(BannerView.OnItemClickListener listener) \nsetAutoPlay(boolean play)//设置是否自动播放，默认播放\nsetInterval(int interval)//设置播放间隔(ms)，例如3000ms\nsetDotSize(int dotSize)//设置指示器圆点尺寸（三种）：AutoPlayViewpager.DOT_SMALL,AutoPlayViewpager.DOT_NORMAL,AutoPlayViewpager.DOT_LARGE\nsetDotColor(int color)//设置指示器颜色，任意颜色\nsetIndicatorLocation(String location)//设置指示器相对于父布局的位置（三个位置）AutoPlayViewpager.INDICATOR_LOCATION_LEFT,AutoPlayViewpager.INDICATOR_LOCATION_CENTER,AutoPlayViewpager.INDICATOR_LOCATION_RIGHT\n...其他ViewPager通用方法...\n```\n### 使用方法\n\n例：在activity_main.xml中，\n``` xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cRelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:id=\"@+id/activity_main\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    tools:context=\"com.capton.bannerviewdemo.MainActivity\"\u003e\n\n    \u003ccom.capton.bannerview.BannerView\n        xmlns:bannerview=\"http://schemas.android.com/apk/res-auto\"\n        android:id=\"@+id/banner\"\n        bannerview:dot_size=\"@dimen/dot_size_normal\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"150dp\"\u003e\n    \u003c/com.capton.bannerview.BannerView\u003e\n    \n    \u003ccom.capton.bannerview.BannerView\n        android:layout_marginTop=\"10dp\"\n        android:layout_below=\"@+id/banner\"\n        xmlns:bannerview=\"http://schemas.android.com/apk/res-auto\"\n        bannerview:incator_location=\"left\"                  \u003c!--圆点指示器位置：左（下）边--\u003e\n        bannerview:dot_size=\"@dimen/dot_size_small\"        \u003c!--圆点指示器尺寸：小--\u003e\n        bannerview:dot_color=\"@color/colorPrimary\"          \u003c!--圆点指示器颜色：可自定义--\u003e\n        android:id=\"@+id/banner2\"            \n        android:layout_width=\"match_parent\"\n        android:layout_height=\"150dp\"\u003e\n    \u003c/com.capton.bannerview.BannerView\u003e\n    \n    \u003ccom.capton.bannerview.BannerView\n        android:layout_marginTop=\"10dp\"\n        android:layout_below=\"@id/banner2\"\n        xmlns:bannerview=\"http://schemas.android.com/apk/res-auto\"\n        bannerview:incator_location=\"right\"\n        bannerview:dot_size=\"@dimen/dot_size_large\"\n        bannerview:dot_color=\"@color/colorAccent\"\n        android:id=\"@+id/banner3\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"150dp\"\u003e\n    \u003c/com.capton.bannerview.BannerView\u003e\n\u003c/RelativeLayout\u003e\n```\n\n例：在MainActivity中\n``` code\npublic class MainActivity extends AppCompatActivity {\n\n    BannerView bannerView;\n    BannerView bannerView2;\n    BannerView bannerView3;\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n\n        ArrayList\u003cString\u003e stringArrayList=new ArrayList\u003c\u003e();\n         stringArrayList.add(\"http://img2.91.com/uploads/allimg/140331/32-1403311A009.jpg\");\n         stringArrayList.add(\"http://img1.imgtn.bdimg.com/it/u=3055632223,2826867768\u0026fm=214\u0026gp=0.jpg\");\n        stringArrayList.add(\"http://img.article.pchome.net/00/28/41/62/pic_lib/wm/hlfjkpbz_17.jpg\");\n\n        bannerView= (BannerView) findViewById(R.id.banner);\n        bannerView2= (BannerView) findViewById(R.id.banner2);\n        bannerView3= (BannerView) findViewById(R.id.banner3);\n\n         bannerView.loadUrl( stringArrayList);  //加载图片地址集合\n         bannerView.setAutoPlay(true); //是否播放，默认 播放\n         bannerView.smoothPlay(false); //播放时是否有滑动效果 默认 有\n         bannerView.setInterval(3000); //播放间隔,默认3000ms\n         // bannerView.setIndicatorLocation(BannerView.INDICATOR_LOCATION_CENTER); //动态改变指示器位置\n         // bannerView.setDotSize(BannerView.DOT_NORMAL);  //指示器圆点的尺寸 实际尺寸为：6dp，8dp，12dp\n         // bannerView.setDotColor(Color.GREEN);           //指示器圆点的颜色，完全自定义\n        bannerView2.loadUrl( stringArrayList);\n        bannerView2.setAutoPlay(false);\n        bannerView2.setInterval(4000);\n\n        bannerView3.loadUrl(stringArrayList);\n        bannerView3.setAutoPlay(false);\n        bannerView3.setInterval(5000);\n\n    }\n}\n```  \n### 作者的话\n 根据前作AutoPlayViewpager的不足和缺点，把这次的轮播插件做成可无限循环的效果，而且你们只需要把控件初始化后，加载数据源进去就行了。\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccapton%2Fandroid-bannerview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fccapton%2Fandroid-bannerview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccapton%2Fandroid-bannerview/lists"}