1、准备底部圆点的素材、利用Drawable的功能,去实现一个圆点图片的展示

drawable下新建两个Drawable resource file:dot_normal.xml和dot_select.xml

dot_normal.xml<?xml version="1.0" encoding="utf-8"?>

android:shape="oval">

android:width="10dp"

android:height="10dp" />

dot_select.xml<?xml version="1.0" encoding="utf-8"?>

android:shape="oval">

android:width="10dp"

android:height="10dp" />

新建类ImageBannerFramLayout继承FrameLayout并Create constructor matching super(实现前面三个构造方法就行)

实现方法initImageBannerViewGroup()和initDotLinearlayout()并在三个构造方法中调用//构造方法

public ImageBannerFramLayout(@NonNull Context context) {

super(context);

initImageBannerViewGroup();

initDotLinearlayout();

}

public ImageBannerFramLayout(@NonNull Context context, @Nullable AttributeSet attrs){

super(context, attrs);

initImageBannerViewGroup();

initDotLinearlayout();

}

public ImageBannerFramLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

initImageBannerViewGroup();

initDotLinearlayout();

}

/**

* 初始化自定义的图片轮播核心类

*/

private void initImageBannerViewGroup() {

imageBannerViewGroup = new ImageBannerViewGroup(getContext());

//设置宽度和高度

FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);

imageBannerViewGroup.setLayoutParams(lp);

imageBannerViewGroup.setDotChangeListener(this);//这里将Listener传递给Framlayout

imageBannerViewGroup.setImageBannerLister(this);

addView(imageBannerViewGroup);

}

/**

* 初始化底部圆点布局

*/

private void initDotLinearlayout() {

linearLayout = new LinearLayout(getContext());

FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, 40);

linearLayout.setLayoutParams(lp);

//水平并居中

linearLayout.setOrientation(LinearLayout.HORIZONTAL);

linearLayout.setGravity(Gravity.CENTER);

//设置背景颜色

// linearLayout.setBackgroundColor(Color.RED);

addView(linearLayout);

//将圆点放到底部

FrameLayout.LayoutParams layoutParams = (LayoutParams) linearLayout.getLayoutParams();

layoutParams.gravity = Gravity.BOTTOM;

linearLayout.setLayoutParams(layoutParams);

//设置底部圆点透明度 3.0之后使用setAlpha(),3.0之前也是使用这个方法,但调用者不同

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

linearLayout.setAlpha(0.5f);//传入float值

} else {

linearLayout.getBackground().setAlpha(100);//传入int值0~255

}

}

添加方法addDotToLinearlayout()和addBitmapToImageBannerViewGroup()并在addBitmaps()中调用public void addBitmaps(List list) {

for (int i = 0; i < list.size(); i++) {

Bitmap bitmap = list.get(i);

addBitmapToImageBannerViewGroup(bitmap);

addDotToLinearlayout();

}

}

private void addDotToLinearlayout() {

ImageView imageView = new ImageView(getContext());

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

//设置圆点的距离

lp.setMargins(5, 5, 5, 5);

imageView.setLayoutParams(lp);

imageView.setImageResource(R.drawable.dot_normal);

linearLayout.addView(imageView);

}

private void addBitmapToImageBannerViewGroup(Bitmap bitmap) {

ImageView imageView = new ImageView(getContext());

imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

//设置宽度(设备的宽度存储在全局变量C.WIDTH中)和高度

imageView.setLayoutParams(new ViewGroup.LayoutParams(C.WIDTH, ViewGroup.LayoutParams.WRAP_CONTENT));

imageView.setImageBitmap(bitmap);

imageBannerViewGroup.addView(imageView);

}

android带圆点的轮播图,Android 实现轮播图效果 底部圆点布局实现相关推荐

  1. android github轮播图,Android使用开源框架ANDROID-IMAGE-INDICATOR实现图片轮播部署

    之前的博文中有介绍关于图片轮播的实现方式,分别为(含超链接): 今天通过使用GitHub中的开源项目android-image-indicator来简单实现APP自带图片的轮播以及加载网络图片进行轮播 ...

  2. android带视频和图片的轮播(banner)解决方案

    方案只包含一个视频和多张图片,如果又多个视频的,可以修改适配器中的的播放器为一个list,并且在滑动中做相应的释放操作 一:实现一个视频和多张图片的轮播banner,使用到第三方框架有 1.轮播的基础 ...

  3. java写轮播图,Android零基础入门第49节:AdapterViewFlipper图片轮播

    上一期学习了ExpandableListView的使用,你已经掌握了吗?本期开始学习AdapterViewFilpper的使用. 一.认识AdapterViewFilpper AdapterViewF ...

  4. Android自己定义控件之应用程序首页轮播图

    如今基本上大多数的Android应用程序的首页都有轮播图.就是像下图这种(此图为转载的一篇博文中的图.拿来直接用了): 像这种组件我相信大多数的应用程序都会使用到,本文就是自己定义一个这种组件,能够动 ...

  5. js轮播图片小圆点变化_纯js实现轮播图,详解(简单,无缝,小圆点,左右手动切换,自动轮动)...

    无论用什么语言开发可视化界面,都有一个叫轮播图的东西.我们现在有个需求,如图: slideshow1.PNG 左右切换按钮默认为隐藏,当鼠标进入图片时,左右切换按钮时显示的,当鼠标离开图片时左右切换按 ...

  6. android带动画的饼图,Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)...

    视屏转为gif图片工具: 下载地址:CSDN 下载 1.封装了各项工具类,例如,日志,打印,缓存等,可直接使用项目 百度网盘:下载    提取码:fq07 2.Android高仿抖音 1.项目 的bu ...

  7. c语言实现图片轮播,纯css实现轮播图

    轮播图的实现原理其实是比较简单的 举个例子 main的宽度是100px div-main的宽度是500px 我们用js控制div-main往左或往右移动,这样就实现了轮播,简单把 好了,先介绍个 cs ...

  8. Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框

    转载请注明出处http://blog.csdn.net/xiaanming/article/details/11066685 今天给大家带来一个很实用的小控件ClearEditText,就是在Andr ...

  9. axure轮播图怎么设置循环轮播_Axure教程:轮播图制作步骤详解

    不管是在PC端还是移动端,轮播图是常见的设计元素.下面详细讲解轮播图的制作步骤. 作为Axure初学者,把最近学到的记录下来,和大家一起学习. 如何实现轮播图: 循环展示轮播图片: 将圆点与轮播图一一 ...

最新文章

  1. TP v5中环境变量在项目中的应用
  2. netty 管道和handler的加载和处理流程
  3. 计算机创建快捷方式w10,win10无法创建快捷方式,win10发送快捷方式磁盘满了
  4. 统计学习笔记(1) 监督学习概论(1)
  5. mongoshake实现mongodb数据同步
  6. 运动:延伸你的美丽(图)
  7. Nginx 404 500
  8. 基于python的在线考试系统-基于 Python 的电子教室和在线考试系统源代码
  9. CSDN在线下载免费获取积分
  10. 《Java并发编程实战》读书笔记一:基础知识
  11. 韦东山嵌入式学习视频完整目录
  12. 单独设置一页或者多页的页眉或者页脚
  13. u盘盘符不显示 win10_电脑插上优盘不显示怎么办_win10电脑插上优盘不显示弹窗的处理方法...
  14. FreeBSD新的JAIL管理工具QJAIL
  15. android img 文件解包
  16. 【飞书集成自建应用教程】
  17. 2017-2018-2 《密码与安全新技术》第一周作业
  18. 用计算机怎么做成绩表,利用Excel制作一个简单的学生成绩表.doc
  19. A BERT Baseline for the Natural Questions
  20. 围棋计算机运算,围棋冠军:用计算力赢计算机

热门文章

  1. 泛微oa流程表单之意见栏字数限制
  2. LPDDR4特点和基本概念--基于Hynix H9HCNNNBPUMLHR系列
  3. 电子招投标管理系统源码-电子招投标认证服务平台-权威认证
  4. (泡在网上的日子)(各种源码)
  5. 使用Process Monitor对病毒进行行为分析
  6. 微信小程序怎么开发(小程序开发文档)
  7. 安装ros导航包,teb_local_planner步骤
  8. 关于下载IAR for stm8及使用Power Writer下载程序笔记
  9. 监理考试用计算机,监理工程师考试用什么计算器
  10. php div 居中代码,用CSS实现DIV水平居中显示