![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android控件
文章平均质量分 51
huang_xiao_yu
这个作者很懒,什么都没留下…
展开
-
自定义TextView折叠文本
项目需求:某折扣字符串:“满10减30·满20减30·满30减30·满40减40·满50减30·满60减30·满70减30·满80减30·满90减40·满100减30”如果将上述文案使用maxline:1 和ellipsize:end 显示到一行中,显示如下:在满60减30的时候因为放不下,被折叠起来了。现产品要求如下:也就是说:当在某单条折扣(如满60减30)已经放不下一行的时候,就要获取到上一个能放下的折扣(以点做区分)此案例中满60减30放不下,他的上一条折扣是满50减30,因此就展示原创 2021-05-25 17:04:04 · 166 阅读 · 0 评论 -
仿唯品会/京东/淘宝搜索流式布局的隐藏与展示
1. 项目需求:如下,如果没有向下箭头(显示/隐藏剩余搜索词条)的话,采用flexbox-layout+Recycleview+FlexboxLayoutManager 可以实现流式布局。加了这个箭头,做起来有点复杂,体现在:1 怎么知道搜索词条总的数量超过2行了?2 箭头应该在哪个位置出现?原有的FlexboxLayoutManager 并没有提供类似的方法或是监听告知。可能需要用到自定义view来做特殊处理2. 代码实现:方案:采用FlowLayout,这里借鉴了FlowLayout,原创 2021-02-23 18:32:23 · 720 阅读 · 1 评论 -
售后进度控件
项目需求:实现:方案一:原创 2020-12-22 16:16:22 · 274 阅读 · 3 评论 -
关于View的移动问题
1. 背景:快端午节了,运营想搞个活动,根据用户交互次数的多少,让龙舟来划动。需求图如下:在此界面,每隔15s就要发一起请求,从而来更新龙舟的位置。涉及到的技术点就是:view坐标的移动。2.实现:先说走过的弯路:getLeft拿到的坐标为0的问题:这个很常见,因为获取时机不对,view 还没布置好,这个时候去拿坐标是拿不到的。具体怎么获取,可以参考:此处我是在onWindowFocusChanged中拿到了5条龙舟各自的onLeft值,而不再是0了。控件的移动问题:最初开始用的是原创 2020-06-08 16:07:07 · 255 阅读 · 0 评论 -
RecycleView实现网格不一样的排列布局
需求原型图这次的需求和普通网格布局方式是不一样的,这个是先从左边排满8个,之后再从右边排。普通recycleView的排列方式是左右左右排的。两种途径可实现这种方式:第一是自定义layoutmanger,这个不会,哭晕。第二种就是重新组装数据,这个倒是会,就是有点麻烦。所以难点就集中体现在:第一,如何重新组装数据第二,每条item的底部bottom线如何去掉,可能有人认为是最后一...原创 2019-10-24 16:28:24 · 895 阅读 · 0 评论 -
vlayout的初始尝试使用
项目需求图可以看到,当item个数为奇数的时候,第一个元素要单独占据一行,有点类似于excel中的合并单元格;当item个数为偶数的时候,就当做普通网格展示就好。对于这种不规则的列表展示方式,vlayout就是最好的选择。由于初始使用这个,需要先做技术预研,所以就写了个简单的demo体验效果。效果如下:(1)当item个数为奇数的时候,展示效果如下:(2)当item个数为偶数的时候,展...原创 2019-10-15 17:55:43 · 308 阅读 · 0 评论 -
用贝塞尔曲线实现语音动画
项目需求效果图:原型是如下这个渐变的带着波浪起伏的语音动画控件,而且这3个起伏点随着唤醒的角度变化,而位置有所改变,目前只支持三个角度:唤醒在左边,中间和右边。实现思路:...原创 2019-09-03 14:58:02 · 568 阅读 · 0 评论 -
RecycleView实现网格整页滑动效果方案二
背景这个是接着上一篇继续做的一个替代或是说优化方案吧,因为从体验上效果来说,这次的会更好点,主要是滑动效果体验很好。需求和上一篇一样,没有变化,先展示做好的效果图:思路偶然间发现了一篇博客,讲解滑动与点击事件的冲突,想到了这样一个方案:最外面一层用这个处理了滑动点击事件的控件,包裹住RecycleView,这样父view负责处理滑动事件,当有滑动的手势的时候,让adapter更新数据,造...原创 2019-06-26 15:56:59 · 784 阅读 · 0 评论 -
RecycleView实现网格整页滑动
需求分析这篇博客写作来源也是项目需求产品经理说:六宫格展示一页数据,用户左滑/右滑的时候,要整页滑动的效果。解释这句话的意思就是:(1)一页只能展示6条数据;(2)只支持横向滑动,用户只能一页一页的滑(相当于用户一次要滑动6条数据);(3)用户左滑是向前翻页,右上角页码随之变换;(4)用户右滑是向后翻页,右上角页码随之变换;(5)点击单条数据,可以跳转这道菜的详情页面。以下是产品...原创 2019-04-22 14:30:59 · 2287 阅读 · 1 评论 -
仿ios 就寝控件
偶然有天发现朋友圈有人晒出苹果手机的一个就寝功能,里面一个显示睡眠时间的控件,觉得这个控件非常好看,而且正好看了一系列的自定义控件文章,那就模仿这个试一试。1 先看效果图:点击查看源码2.具体实现:(1)初始化一些画笔从图中可以分析出,我们需要如下画笔:画外面黑色大圆,画时钟数字,画中间文字,画时钟刻度等等,也就是需要什么画笔new出来就好。 /** * 初始化画笔: ...原创 2019-02-21 11:34:00 · 1063 阅读 · 0 评论 -
RecycleView实现画廊效果
先说项目ui需求图:滑动到第一项的时候,不可再向左滑动,并且左侧显示:“左侧没有内容”。滑动到最后一项的时候,不可再向右滑动,并且右侧显示:“右侧没有内容”。用户在开始滑动的时候,“左侧没有内容”或是“右侧没有内容”的view要立即消失。当前item需要有放大效果,并且有边框。不是当前的item需要有缩小效果,无边框。如下图所展示:需求实现:难点如下: 1. ...原创 2018-08-03 11:35:17 · 3047 阅读 · 0 评论 -
Android之自定义ViewPagerIndicator
几乎每个app上都可以看到ViewPager的指示器,许多的第三方也提供了该功能的控件。现介绍在不借助第三方的控件的情况下,独立开发的一款指示器: 先看效果: 其中的淡绿色指示条会随着标题栏的变化,viewpager的变化而做相应的变化: 代码实现如下: 1. activity中的布局:LinearLayout xmlns:android="http://schemas.a原创 2015-10-26 20:55:19 · 625 阅读 · 0 评论 -
Android自定义控件之大图轮播
大图轮播是在ViewPager的基础上,实现永远自动循环播放的效果,界面展示如下: 自定义空间代码如下:public class LoopingViewPager extends ViewPager { // 图片 private List setImgurls = new ArrayList(); private ImageCache imageCache原创 2015-10-28 00:36:50 · 506 阅读 · 0 评论 -
ListView可回收引起CheckBox选中状态混乱的解决方案
在用ListView展示数据的时候,我们通常都会用到convertView和ViewHolder来优化列表项布局。但是,在ListView列表项布局和CheckBox搭配在一起使用时,如果不做一些必要的处理,会导致在上下滑动ListView的时候,出现checkbox选中状态混乱的情况。这是由ListView回收引起的,现提供一个解决方案:原创 2015-10-29 01:37:30 · 565 阅读 · 0 评论 -
Java设计模式之Command在Android中的应用
1.概念:其实刚开始我也不是很理解这一模式。后面看到一些文章谈到Command模式的许多代码都是针对图形界面,它实际就是菜单命令。把这句话照搬到Android中,会发现我们经常做的一些如对点击事件的监听就是采用的这种模式:把对控件和对控件的事件处理分离开来,降低耦合性。它和适配器模式非常相似,只不过适配器是针对内容,而command是针对事件。2.应用:android 中的点击监听事件就是comma原创 2015-11-01 03:10:08 · 682 阅读 · 0 评论 -
xml布局中实现文字下划线的效果
最近在项目中正好碰到需求:给文字实现下划线的效果,在网上搜索了下,有提供方法,但是我想完全依靠xml布局去实现,然后试验了几次,最终只用了TextView做出了如下效果:下划线图片代码:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"原创 2015-12-29 18:53:21 · 8016 阅读 · 0 评论 -
采用Build模式构建自定义Dialog
先说Build的概念,我看到网上有很多关于这个模式的解释说明,我比较认同的是下面的这种理解: 所谓Build模式就是:一步一步将一个复杂对象创建出来,允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。我们最深的体会就是链式编程的运用,这里面基本上都是创建了一个内部静态Build. Android中尤为常见,比如说AlertDialog. 我这里就拿自己做的一个Dialo原创 2017-04-05 19:10:36 · 1142 阅读 · 0 评论 -
自定义StepView
背景:先看自己写的demo图:项目中有一个需求:就是希望用户进行到哪步,哪步就高亮显示,并且每个步骤的图片都是不同的,完成的和未完成的线条和字也要做相应区分。我是参考了gtihub上一个开源的stepview(但是这个不完全符合我的项目需求),所以在其源码上,进行修改和相应调整,然后做出符合自己项目需求的stepview。 https://github.com/baoyac原创 2017-07-05 08:08:18 · 1096 阅读 · 0 评论 -
仿Android 源码处理长按事件
项目中有个需求:当用户长按某个键,当有5秒的时候,提示用户松手。需求非常简单,如何用简单高效的方法来实现呢?刚开始是打算用个计时器,如果计时达到了5s,就提示用户松手,后面回想android button的长按点击事件,它又是如何实现的呢?view 的长按点击事件部分源码://这是一个runnableprivate CheckForLongPress mPendingCheckForLongPre原创 2018-05-07 17:03:15 · 617 阅读 · 0 评论 -
Android自带控件ExpandableListView的使用
做项目时恰好有用到ExpandableListView,用法比ListView要复杂些,具体代码和效果图如下: 1.效果图: 2.布局: 布局文件比较简单: activity的布局: <ExpandableListView android:id="@+id/elv" android:layout_width="fill_parent" and原创 2015-10-20 23:44:05 · 724 阅读 · 0 评论