android 自定义viewPager 下标
来源:互联网 发布:真实二手房源 知乎 编辑:程序博客网 时间:2024/05/21 07:48
像一般商城类 app 的主界面 页面 顶部会有一个 广告展示窗口,如淘宝,京东等。这些广告在滚动的时候 都有一个下标表示 当前条目所处的 序列。
如图:
要实现这个效果 思路如下:
下标用ImageView 实现 ,然后把所有的 下标都 放入 一个横向 的 LinearLayout中 ,通过 设置 LinearLayout的 gravity 控制 下标出现的 位置。
效果图:
具体实现:
首先 这是个自定义控件,继承自LinearLayout ,需要一些自定义的 属性 比如
count: 下标的数量
checkedImg : 选中显示的图拍呢
<resources> <declare-styleable name="viewPagerIndex" > <attr name="checkImg" format="reference"/> <attr name="unCheckImg" format="reference"/> <attr name="count" format="integer"/> <attr name="checkIndex" format="integer"/> </declare-styleable></resources>
实例化时,先获取 布局文件中设置的属性
private void init(AttributeSet attrs) { TypedArray attributes = getResources().obtainAttributes(attrs, R.styleable.viewPagerIndex); checkImg = attributes.getResourceId(R.styleable.viewPagerIndex_checkImg, R.mipmap.ic_launcher); unCheckImg = attributes.getResourceId(R.styleable.viewPagerIndex_unCheckImg, R.mipmap.ic_launcher); count = attributes.getInt(R.styleable.viewPagerIndex_count, 0); checkIndex = attributes.getInt(R.styleable.viewPagerIndex_checkIndex, 0); LayoutInflater.from(getContext()).inflate(R.layout.view_viewpager_index_layout, this); LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setLayoutDirection(HORIZONTAL); this.setLayoutParams(layoutParams); setContent();}
然后 调用 setContent() 将 下标 添加 到 LinearLayout中:
/** * 添加 下标 */private void setContent() { this.removeAllViews(); for (int i = 0; i < count; i++) { ImageView imageView = new ImageView(getContext()); if (checkIndex == i) { imageView.setImageResource(checkImg); imageView.setTag(TAG_CHECKED); } else { imageView.setImageResource(unCheckImg); imageView.setTag(TAG_UN_CHECKED); } this.addView(imageView); }}
如要 改变 选中下标 则 调用此方法:
/** * 设置 选中 下标 的 序号 * * @param checkIndex */public void setCheckIndex(int checkIndex) { this.checkIndex = checkIndex; ImageView imageViewChoosed = (ImageView) getChildAt(checkIndex); if (imageViewChoosed==null||TAG_CHECKED.equals(imageViewChoosed.getTag())) { // 如果 设置 下标序号 就是当前选中下标序号 则不做任何处理 return; } // 将 当前选中下标改为 未选中, ImageView imageViewChecked = (ImageView) this.findViewWithTag(TAG_CHECKED); imageViewChecked.setImageResource(unCheckImg); imageViewChecked.setTag(TAG_UN_CHECKED); // 将设置的下标设置为选中 imageViewChoosed.setImageResource(checkImg); imageViewChoosed.setTag(TAG_CHECKED);}
项目地址:http://download.csdn.net/detail/qq_22911297/9868313
最终效果如图
阅读全文
0 0
- android 自定义viewPager 下标
- Android--自定义tab+viewPager
- Android自定义ViewPager指示器
- Android-自定义ViewPager指示器
- Android自定义ViewPager指示器
- Android 自定义ViewPager标题
- Android 自定义Viewpager滑动速度
- Android 自定义ViewPager 禁止滑动
- Android 自定义viewpager选中点
- Android 自定义ViewPager 过渡效果
- Android ViewPager 自定义翻页动画
- Android --自定义ViewPager切换动画
- Android 自定义ViewPager 实现轮播图
- Android自定义View——自定义ViewPager
- Android自定义View——自定义ViewPager
- ViewPager翻页,下标,循环播放
- Android为ViewPager增加切换动画——自定义ViewPager
- Android为ViewPager增加切换动画——自定义ViewPager
- APP转让时提示:您必须移除要转让的 App 的所有构建版本和测试员,并清除“测试信息”下的所有信息
- Android( 基本控件)、progressBar+Handler(进度条)、AutoCompleteTextView(单行自动补全)、MultiAutoCompleteTextView(多行补全)
- ScrollView嵌套Listview,你会遇到的问题(1)!
- Alfresco文档管理系统 文档
- 决策树算法原理及案例
- android 自定义viewPager 下标
- http请求
- 【Android学习】自定义View的实现----以圆形图片控件为例
- 小飞鱼二开 使用jwt TOKEN方式单点登录开发(代码)
- spark的rdd.saveastextfile可以追加写入hdfs吗
- tomcat异常:Illegal access: this web application instance has been stopped already. Could not load ...
- 关于 struts2 Unable to load configuration.
- 用U盘安装Ubuntu系统,但不知道如何设置U盘启动
- Oracle索引与视图的创建与应用