Android自定义View精彩案例
文章平均质量分 94
自定义View精彩案例
字节卷动
字节卷动 | CSDN博客专家
博客知识包括:Android、ASM、OpenGL、C++、Java、Python、Shell、Jenkins、Gitlab、Git、SVN等相关进阶知识。
展开
-
【我的Android进阶之旅】Android自定义View实现一个游戏摇杆,来实现监听遥动的方向或者监听摇动的角度的功能
一、需求描述去年有个需求,需要使用自定义View实现一个游戏摇杆,来识别上下左右摇动的方向。有点类似下面这样的王者荣耀游戏摇杆的效果二、业界已有的参考资料在下面这篇博客介绍了如何自定义游戏摇杆2.1 博客介绍Android自定义摇杆2.1.1 功能支持自适应大小支持2个方向、4个方向、8个方向的摇动监听支持摇动角度获取可选回调模式支持可摇动区域自定义支持摇杆自定义支持设置图片、色值、Shape图形2.1.2 效果图2.1.3 设置回调方式setCallBac原创 2021-05-12 10:18:48 · 1012 阅读 · 1 评论 -
【我的Android进阶之旅】使用TextureView来实现一个VideoView功能,解决VideoView在部分机型黑屏无画面但是有声音的bug
一、需求描述最近做一个类似抖音的可以上下滑动或者左右滑动然后自动播放视频的小功能,一开始使用系统自带的View的VideoView来播放这些小视频,但是出现了兼容性问题。bug : 在部分设备上,会出现有声音但是没画面,画面全黑无任何画面显示,但是有声音的bug1.1 解决黑屏的方法对videoView设置下面两个属性 videoView.setZOrderMediaOverlay(true); videoView.setZOrderOnTop(true);这个方法把videoVi原创 2020-12-19 15:51:53 · 2460 阅读 · 2 评论 -
【我的Android进阶之旅】实现跟随ViewPager滑动而滑动的指示器,并且滑动到最后一页之后继续滑动则跳转到其他页面
一、需求描述最近做了一个需求,其中有一个小需求如下所述的描述:做一个可以左右滑动的页面,然后在页面上方有一个跟随页面滑动而滑动的指示器。并且滑动到最后一页的时候继续滑动的话,则跳转到另外一个页面。效果如下所示:第一页第6页最后一页最后一页继续左滑,则跳转到第二个页面二、实现上面的效果2.1 自定义指示器自定义一个指示器,如下代码所示:思路很简单使用一个LinearLayout装载和页数一样多的灰显背景小块然后使用FrameLayout帧布局将背景滑原创 2020-10-23 20:41:34 · 1731 阅读 · 1 评论 -
【我的Android进阶之旅】你可能不知道android.view.View#setAlpha()方法也会影响你的APP性能!
一、问题描述最近在优化APP的性能的时候,发现了一个平时完全没有注意到的一个能够影响APP性能的代码。这个代码就是调用了android.view.View#setAlpha()方法。1.1 需求描述APP有个需求,是在滑屏的过程中,蒙版的背景颜色会动态的变化透明度。1.1.1 关于蒙版是啥?下面内容摘自 林屹 老师的 《PPT设计的艺术:人人都用得上的PPT艺术书》。在Photoshop、PPT中,也会经常用到蒙版,类似“贴膜”的效果,制作很简单------ 在文字和图片之间插入一个半透明原创 2020-06-06 17:45:47 · 1805 阅读 · 1 评论 -
【我的Android进阶之旅】优化自定义View时onDraw方法警告Avoid object allocations during draw/layout operations (prealloca
一、问题描述今天看了下之前的一个自定义View,发现在onDraw(Canvas canvas)方法中,有大量的黄色Lint警告:Avoid object allocations during draw/layout operations (preallocate and reuse instead)如下所示:`Avoid object allocations during draw/la...原创 2019-01-16 11:53:44 · 1417 阅读 · 0 评论 -
【我的Android进阶之旅】解决自定义View的时候,四个参数的构造方法需要在SDK21以上才会调用,需要考虑兼容性,否则会报错!
一、错误描述之前【我的Android进阶之旅】实现一个四周圆角并且中间有小圆来进行分隔的自定义LinearLayout (https://blog.csdn.net/ouyang_peng/article/details/85295859)中我自定义了一个LinearLayout,但是今天,这个demo运行在4.4.2的android系统上时候,奔溃了,奔溃信息如下:01-16 10...原创 2019-01-16 10:40:46 · 1284 阅读 · 0 评论 -
【我的Android进阶之旅】解决重写onTouch事件提示的警告:onTouch should call View#performClick when a click is detected
一、问题描述当你对一个控件(例如ImageView)使用setOnTouchListener() 或者是对你的自定义控件重写onTouchEvent方法时会出现这个警告,警告内容全文如下: MyImageOnTouchListener#onTouch should call View#performClick when a click is detected less… (Ctrl+F...原创 2018-09-10 00:26:51 · 10581 阅读 · 0 评论 -
【我的Android进阶之旅】如何去除ListView中Header View、Footer View中的分割线
最近的项目中给ListView 加入了一个Header View之后,发现Header View的下方也有了分割线,很难看,UI要求将Header View的分割器去掉,好吧。现在就来说一说如何如何去除ListView中Header View中的分割线。Header View中带分割线 Header View中不带分割线 Header View中要去掉的分割线 方法1ListView的部分布原创 2016-10-07 15:25:41 · 5557 阅读 · 0 评论 -
【我的Android进阶之旅】Android自定义View来实现解析lrc歌词并同步滚动、上下拖动、缩放歌词、卡拉OK高亮的功能
前言一LRC歌词文件简介1什么是LRC歌词文件2LRC歌词文件的格式LRC歌词文件的标签类型1标识标签2时间标签二解析LRC歌词1读取出歌词文件2解析得到的歌词内容1表示每行歌词内容的实体类LrcRow2解析歌词的构造器ILrcBuilder接口DefaultLrcBuilder歌词解析构造器lrc歌词原始内容lrc歌词解析后的内容三显示LRC歌词内容1定义一个IL原创 2016-03-06 14:53:46 · 12868 阅读 · 27 评论 -
【我的Android进阶之旅】关于自定义View的时候,使用了Xfermode而调用了禁用硬件加速的注意事项
一、问题描述在博客【我的Android进阶之旅】实现一个四周圆角并且中间有小圆来进行分隔的自定义LinearLayouthttps://ouyangpeng.blog.csdn.net/article/details/85295859里面我绘制了一个自定义View,如下图所示:但是,由于使用了PorterDuffXfermode来处理两个图层的图层混合模式,而网上的资料说htt...原创 2019-04-03 16:54:23 · 719 阅读 · 0 评论 -
【我的Android进阶之旅】如何自定义一个45度旋转的TextView,实现类似右上角文字角标的效果
一、需求描述最近,公司要做国际化,而且有个界面的右上角要做成类似如下所示的样式,最开始的这个右上角角标是UI直接出图给我的,然后发现UI给了我好几个国家的角标,每个国家两张图片,分别是 xdpi分辨率下和xxdpi分辨率的。这样的话,关这个角标就得十几张小图片,oh my god,虽然每张图片也不大,才2k左右,但是加起来也有几十k啊,如果以后要支持的国家越来越多咋办? 因此我决定还是优化一...原创 2019-01-10 21:11:46 · 4310 阅读 · 0 评论 -
【我的Android进阶之旅】实现一个四周圆角并且中间有小圆来进行分隔的自定义LinearLayout
一、背景今天,美工要求修改某个APP的页面,修改的样式大致如下所示:我们分析下上面的效果,四周是圆角,中间是两个半圆和十几个小圆组成的分隔符。然后其他地方就是一些图片和文字信息。因此我决定自定义一个LinearLayout实现四周圆角并且中间有小圆来进行分隔的LinearLayout。下面来说说具体的实现思路吧。二、实现自定义LinearLayout实现的空白效果如下,这个自定义L...原创 2018-12-27 18:32:29 · 1940 阅读 · 2 评论 -
【我的Android进阶之旅】解决Android Studio在XML中使用自定义View输入自定义属性的时候没有任何提示的问题
一、问题描述这两天公司的一个年轻的小伙子在维护历史的自定义控件库的时候,发现之前开发这个自定义控件库的人员写的自定义控件,Android Studio开发的时候,在XML布局文件中无法自动提示出自定义属性,需要自己去看代码了解这个自定义控件有哪些自定义属性,然后手动的copy和paste代码。太恶心了!经过一段时间的排查,发现之前的开发人员自定义控件的自定义属性的declare-style...原创 2018-08-16 16:48:53 · 5397 阅读 · 10 评论 -
【我的Android进阶之旅】Android自定义电池控件
一、背景最近公司有个业务,需要自定义一个电池控件,因此自己按照UI图编写了一个自定义View。二、效果三、实现过程首先看下视觉给出的UI效果图 从这里我们可以看得出来,要自定义这个电池View的话,分为3部分来绘制。第一部分是电池头第二部分是电池边框第三部分是电池电量3.1 自定义属性因此按照上面的UI效果图来做的话,我们自定义几个属性。...原创 2018-06-15 16:19:23 · 2162 阅读 · 2 评论 -
我的Android进阶之旅------>Android如何通过自定义SeekBar来实现视频播放进度条
首先来看一下效果图,如下所示:其中进度条如下:接下来说一说我的思路,上面的进度拖动条有自定义的Thumb,在Thumb正上方有一个PopupWindow窗口,窗口里面显示当前的播放时间。在SeekBar右边有一个文本框显示当前播放时间/总时间。step1、先来看一看PopupWindow的布局文件,seek_popu.xml,效果如下图所示:<Rela原创 2013-11-27 12:39:10 · 12415 阅读 · 8 评论 -
我的Android进阶之旅------>Android通过使用Matrix旋转图片来模拟碟片加载过程
今天实现了一个模拟碟片加载过程的小demo,在此展示一下。由于在公司,不好截取动态图片,因此就在这截取两张静态图片看看效果先。下面简单的将代码列出来。setp1、准备两张用于旋转的图片,如下:loading_disc.png是第一张图片,loading_light.png是第二张图片。 (1) (2)step2、自原创 2013-12-07 11:19:07 · 3447 阅读 · 0 评论 -
我的Android进阶之旅------>Android利用温度传感器实现带动画效果的电子温度计
我的Android进阶之旅------>Android利用温度传感器实现有动画效果的电子温度计原创 2015-09-29 08:38:12 · 9585 阅读 · 8 评论 -
我的Android进阶之旅------>【强力推荐】Android开源图表库XCL-Charts版本发布及展示页
因为要做图表相关的应用,后来百度发现了一个很好的Android开源图表库(XCL-Charts is a free charting library for Android platform.) 下面内容转载于:http://blog.csdn.net/xcl168/article/details/29675613,详细介绍了XCL-Charts的展示内原创 2015-10-16 09:11:12 · 4407 阅读 · 3 评论 -
我的Android进阶之旅------>Android自定义View实现带数字的进度条(NumberProgressBar)
今天在Github上面看到一个来自于 daimajia所写的关于Android自定义View实现带数字的进度条(NumberProgressBar)的精彩案例,在这里分享给大家一起来学习学习!同时感谢daimajia的开源奉献!第一步、效果展示图1、蓝色的进度条 图2、红色的进度条 图3、多条颜色不同的进度条 图4、多条颜色不同的进度条 版权声明:本文为【欧阳鹏】原创文章,欢迎转载,转载...原创 2016-03-11 23:58:51 · 12504 阅读 · 1 评论 -
我的Android进阶之旅------>Android自定义窗口标题实例
该实例的功能比较简单,但是通过该实例的扩展可以在自定义标题中做出菜单导航等实用的功能,为了实现自定义窗口标题,需要做以下几个步骤:1、给自定义标题提供一个界面2、将自定义标题应用给Activity窗口3、把android系统为Activity设置的默认主题改为自己的主题============================下面查看实现该例子的具体代码===========原创 2013-09-29 01:40:22 · 4883 阅读 · 0 评论