自定义控件
文章平均质量分 68
本专栏将针对自定义组合控件以及具有自定义属性的自定义控件的使用进行讲解
Jack-Chan
非NB非知名Android开发者
展开
-
自定义组合控件
自定义组合控件原创 2016-01-18 23:13:27 · 670 阅读 · 0 评论 -
Android自定义控件
Android中Canvas绘图基础详解Android Paint、Canvas、Matrix使用讲解(一、Paint)Android Paint之 setXfermode PorterDuffXfermode 讲解Canvas开篇之drawBitmap方法讲解Android 手把手教您自定义ViewGroup(一)Android 自定义View (一) Android 自定义View原创 2016-04-28 20:47:08 · 1611 阅读 · 0 评论 -
Android自定义控件系列
在我从C++转到Android时,就被Android里炫彩斑斓的自定义控件深深折服,想知道如果想利用C++实现这些功能,那是相当困难的。从那时候起,我就想,等我学会了自定义控件,一定要写一篇系列出来,方便后来者能更系统完善地掌握它。今天,这个系列就这样默默地诞生了,希望它能够完成它的使命,在你读完这系列博客时,发现定自义控件也不过如此!如果,顺便能给个评论,加个关注,我将不胜感激——启舰转载 2016-08-21 10:16:13 · 788 阅读 · 0 评论 -
Android中Canvas绘图之Shader使用图文详解
我们在用Android中的Canvas绘制各种图形时,可以通过Paint.setShader(shader)方法为画笔Paint设置shader,这样就可以绘制出多彩的图形。那么Shader是什么呢?做过GPU绘图的同学应该都知道这个词汇,Shader就是着色器的意思。我们可以这样理解,Canvas中的各种drawXXX方法定义了图形的形状,画笔中的Shader则定义了图形的着色、外观,二者结合到一起就决定了最终Canvas绘制的被色彩填充的图形的样子。转载 2016-09-02 19:08:32 · 954 阅读 · 0 评论 -
Android中事件分发机制的总结
原文出处:http://blog.csdn.net/jdsjlzx/article/details/52355249事件传递虽然算不上某个单独的知识点,但是在实际项目开发中肯定会碰到,如果不明白其中的原理,那在设计各种滑动效果时就会感到很困惑。关于事件的传递,我们可能会有以下疑问:事件是如何传递的事件是如何处理的自定义view的时候,事件也冲突了怎么解决带着这三个疑问,我们来总结一下事件传递转载 2016-09-07 10:27:42 · 535 阅读 · 0 评论 -
自定义组合控件:Banner、轮播图、广告栏控件
一、项目概述这里,我们使用自定义组合控件实现一个自动轮播的广告条,也叫轮播图,完整版的效果图如下图所示。其实,这就是我们经常见到的滚动广告,默认情况下每隔N 秒会自动滚动,用手指左右滑动时也会切换到上一张或者下一张。当界面切换时,对应广告图片的标题也会随着改变,并且还有对应图片索引的点也会被选中变为红色。此处,实现的核心控件是ViewPager,它是Android3.0 版本加入的新控件,为了向下兼原创 2016-09-11 22:29:53 · 2972 阅读 · 0 评论 -
自定义控件:快速索引
快速索引在应用中很常见,在联系人,微信,省市列表,应用管理,文件管理等应用场景都可以看到快速索引的身影,本篇博客将讲解快速索引的自定义,从中你可以学到获取汉字首字母的方法,绘制字母时,纵坐标的计算方法一、静态绘制初始化数据创建自定义控件QuickIndexBar 继承Viewpublic class QuickIndexBar extends View { private Paint原创 2016-09-11 22:58:14 · 1488 阅读 · 0 评论 -
自定义控件:侧滑面板
本篇博客讲解的是自定义View之侧滑面板,应用场景:QQ,知乎,效果图如下 一、内容摘要了解ViewDragHelper 的产生及解决的问题掌握ViewDragHelper 的使用步骤掌握属性动画的使用掌握状态更新及事件回调的用法二、实现最简单的拖拽1、实现最简单的拖拽在创建DragLayout 时,继承FrameLayout,这里需要注意两个问题为什么不继承ViewGroup,因为继承原创 2016-09-11 23:39:16 · 1139 阅读 · 0 评论 -
安卓自定义View进阶-Matrix Camera
原文出处:http://www.gcssloop.com/customview/matrix-3d-camera本篇依旧属于Matrix,主要讲解Camera,Android下有很多相机应用,其中的美颜相机更是不少,不过今天这个Camera可不是我们平时拍照的那个相机,而是graphic包下的Camera,专业给View拍照的相机,不过既然是相机,作用都是类似的,主要是将3D的内容拍扁变成2D的内容转载 2016-09-14 09:45:59 · 2495 阅读 · 0 评论 -
RecyclerView列表控件漂亮时间线实现
很多软件中都有时间线的东西,比如天气,计划,旅游等时间线最多了;具体实现方式很多,在本篇文章中讲解一种自定义View封装的方式实现时间线效果,PS:这也是面试中也时常会问到的知识点转载 2016-10-21 14:14:28 · 3745 阅读 · 2 评论 -
关于帧率
FPS即Frames per Second,中文翻译为每秒显示帧数,俗称帧率。多用于影视制作和游戏。 由于人类眼睛的特殊生理结构,如果所看画面显示的速率在29.97时候,就会认为是连贯的,这也就是为什么电影胶片是一格一格拍摄出来,然后快速播放的。而对游戏,一般来说,第一人称射击游戏比较注重FPS的高低,如果FPS<30的话,游戏会显得不连贯。原创 2016-11-15 10:26:20 · 1919 阅读 · 0 评论 -
自定义控件:下拉刷新
PullToRefresh 下拉刷新 上拉加载掌握自定义的具有下拉刷新和上拉加载功能的 ListView掌握自定义的侧边栏 SlidingMenu在日常开发工作中,应用界面常常都是用ListView进行数据展示的,并且界面可以实现下拉刷新和下拉加载功能,本文从根本上来自定义一个具有下拉刷新和上拉加载的 ListView。另外,侧边栏 SlidingMenu的应用场景也很多,这里我们也自定义一个原创 2016-12-02 21:44:26 · 955 阅读 · 0 评论 -
PopupWindow
public class DirPopupWindow extends PopupWindow{ private int mWidth; private int mHeight; private ListView mListView; private List<FolderBean> mData; private FolderBean preSelFolder;原创 2016-12-06 15:53:13 · 553 阅读 · 0 评论 -
自定义View:PullToZoomScrollView
public class PullToZoomScrollView extends NestedScrollView { private int DEFAULT_PULL_HEIGHT = 100; private float distance = 0.0f; private boolean isBig; private boolean isPreparePull;原创 2016-12-22 23:01:04 · 587 阅读 · 0 评论 -
ViewConfiguration.getScaledTouchSlop () 用法
getScaledTouchSlop是一个距离,表示滑动的时候,手的移动要大于这个距离才开始移动控件。如果小于这个距离就不触发移动控件,如viewpager就是用这个距离来判断用户是否翻页ViewConfiguration滑动参数设置类:/** * 包含了方法和标准的常量用来设置UI的超时、大小和距离 */ public class ViewConfiguration {转载 2016-12-22 23:19:48 · 6007 阅读 · 0 评论 -
Android 开源之StickyHeaderListView 标题渐变、吸附悬停、筛选分类、动态头部
原文链接:http://www.jianshu.com/p/3bf26722c489StickyHeaderListView是基于实际需求做出的灵活可定制的UI功能,具体实现功能如下:一、支持无限循环的广告位。 二、高度可动态配置的Header2和Header3(使用GridView实现)。 三、主要功能:分类、排序和筛选布局滑动到顶部后吸附、悬停。 四、自定义FilterView筛选控件,支转载 2017-01-01 20:14:10 · 1425 阅读 · 0 评论 -
自定义控件:旋转菜单
效果图项目概述首先,我们学习如何自定义一个组合控件,其中,优酷菜单是一个典型的自定义组合控件,它的效果图如图1-1 所示:图中由中间往外,分别是一级菜单、二级菜单、三级菜单。其基本用法是:点击一级菜单后加载二级菜单,再点击二级菜单加载三级菜单,如图1-2(c)—(d)—(e)—(f),再点击一级菜单分别隐藏三级、二级菜单 1-2(a)—(b)。并且点击手机菜单键,让菜单根据状态来显示和隐藏,演示效原创 2017-01-17 13:32:18 · 1550 阅读 · 0 评论 -
自定义控件:水波纹
效果图原创 2017-01-17 13:55:04 · 614 阅读 · 0 评论 -
自定义控件:流式布局
实现代码public class FlowLayout extends ViewGroup { private List<Line> mLines = new ArrayList<Line>(); // 用来记录描述有多少行View private Line mCurrrenLine; // 用来记录当前已经添加到了哪一行 priva原创 2017-01-17 14:16:33 · 512 阅读 · 0 评论 -
自定义控件:3D画廊Gallery
Gallery This class was deprecated in API level 16. This widget is no longer supported. Other horizontally scrolling widgets include HorizontalScrollView and ViewPager from the support library.pac原创 2017-02-17 11:19:34 · 3458 阅读 · 0 评论 -
自定义控件:SlidingMenu,侧边栏,侧滑菜单
SlidingMenu 自定义控件之侧边栏项目概述观察如图2-4 的完整项目中的效果界面,点击标题栏的左上角会弹出侧边栏,再次点击时会关闭侧边栏,这种效果在很多手机应用中使用,因此,我们有必要学会如何自定义一个具有侧边栏效果的控件。 布局界面UI在本章中,主界面为MainActivity.java,具体代码如文件所示:res/layout/activity_main.xml<RelativeLayo原创 2017-02-17 14:14:09 · 3490 阅读 · 0 评论 -
自定义控件:视差特效
ParallaxEffects 视差特效了解ImageView 的scaleType 属性掌握ListView 的overScrollBy()方法应用场景:QQ 空间,微信朋友圈,微博,需要快速定位的列表效果图 界面初始化填充ListView自定义ParallaxListView 继承ListViewpublic class ParallaxListView extends ListView原创 2017-02-18 09:53:48 · 894 阅读 · 0 评论 -
自定义控件:侧拉删除
SwipeLayout 侧拉删除掌握ViewDragHelper 的用法掌握平滑动画的原理及状态更新事件回调应用场景:QQ 聊天记录,邮件管理,需要对条目进行功能扩展的场景,效果图:ViewDragHelper 初始化创建自定义控件SwipeLayout 继承FrameLayoutpublic class SwipeLayout extends FrameLayout { privat原创 2017-02-18 11:27:18 · 1231 阅读 · 0 评论 -
自定义控件:QQ气泡效果粘性控件的实现
学习目的了解几何图形工具的用法掌握画不规则图形的方法应用场景:未读提醒,效果图: 绘制一帧的效果画一帧粘性控件的步骤分析画一个固定圆画一个拖拽圆画中间连接部分将中间连接部分水平放置,四个角的坐标定为固定值,分别标记上点的编号,矩形中心的点为控件点,画曲线时用自定义一个GooView 继承Viewpublic class GooView extends View { priva原创 2017-02-18 12:04:20 · 1281 阅读 · 0 评论 -
自定义控件:Viewpager
自定义控件:Viewpager原创 2017-02-18 12:55:30 · 595 阅读 · 0 评论 -
自定义控件:滑动开关
ToggleButton 滑动开关项目概述滑动开关是一个纯粹的自定义控件,上面的按钮会随着我们的左右滑动而滑动,并且在状态改变时通知用户,效果如下图1-9 所示,这也是应用中设置某些状态信息时最常见的控件,因此,我们有必要学习关于如何 自定义一个这样的滑动开关。 滑动开关UI布局文件为activity_main.xml,代码如下:res/layout/activity_main.xml<Relat原创 2017-02-18 17:55:57 · 4355 阅读 · 3 评论 -
自定义View:测量measure,布局layout,绘制draw
什么是View在Android的官方文档中是这样描述的:表示了用户界面的基本构建模块。一个View占用了屏幕上的一个矩形区域并且负责界面绘制和事件处理。手机屏幕上所有看得见摸得着的都是View。这一点对所有图形系统来说都一样,例如ios的UIView。View和Activity的区别我们之前学习过android的四大组件,Activity是四大组件中唯一一个用来和用户进行交互的组件。可以说Activ原创 2017-02-26 13:12:25 · 2545 阅读 · 0 评论 -
自定义控件:等比例显示控件RatioLayout
图1和图2都是宽高比例相等,但是分辨率大小不一样的图片,应该按照比例显示,使用等比例显示控件后,图2的显示效果如图3所示,和图1的显示效果是一致的,解决了宽高比相等或接近但分辨率大小不一样而造成的显示效果不一致的问题package com.google.widget.view;import android.content.Context;import android.content.res.Typ原创 2017-02-26 17:19:53 · 2636 阅读 · 0 评论 -
自定义组合控件:下拉选择框
Spinner 自定义组合控件之下拉选择框项目概述下拉选择框主要是通过在EditText 下用PopupWindow 动态显示ListView 控件来实现的。下拉选择框可以方便用户的输入效率,以此提升用户体验。点击EditText 控件右侧的倒三角形弹出如下可选项,点击 可选项,那么内容将自动填充到EditText 控件中,如图1-6 所示。另外,点击下拉框中条目右边的红色叉号可以删除当前的条目,原创 2017-02-28 17:25:58 · 3120 阅读 · 0 评论 -
Android的事件分发
一、Touch事件和绘制事件的异同之处Touch事件和绘制事件很类似,都是由ViewRoot派发下来的,但是不同之处在绘制事件是由应用中的某个View发起请求,一层一层上传到ViewRoot,再有ViewRoot下发绘制,传递canvas给所有子View让其绘制自身,绘制好后,再通知WMS进行画到屏幕上。而Touch事件是由硬件捕获到触摸后由系统传递给应用的ViewRoot,再由ViewRoot往下原创 2017-03-02 17:18:53 · 2678 阅读 · 1 评论 -
Android应用坐标系统全面详解
去年有很多人私信告诉我让说说自定义控件,其实通观网络上的很多博客都在讲各种自定义控件,但是大多数都是授之以鱼,却很少有较为系统性授之于渔的文章,同时由于自己也迟迟没有时间规划这一系列文章,最近想将这一系列文章重新提起来,所以就来先总结一下自定义控件的一个核心知识点——坐标系。转载 2017-03-03 00:46:10 · 3060 阅读 · 0 评论 -
Activity、View、Window、DecorView的关系
android中真正展示给用户的是window和view,activity在android中所的作用主要是处理一些逻辑问题,比如生命周期的管理、建立窗口等。在android中,窗口的管理还是比较重要的一块,因为他直接负责把内容展示给用户,并和用户进行交互。响应用户的输入等。 View是真正显示的矩形区域,DecorView是顶层View,也就是主View。 相互之间的关系可以理解为一个Activit原创 2017-03-03 09:46:35 · 828 阅读 · 0 评论 -
Android XML 实例化的过程
安卓提供了XML布局方式,但是我们必须明白,XML布局最终也是通过xml的pull解析方式,得到布局名称和控件名称,以及相关的属性,然后利用反射机制创建的java对象的,所以效率上来说,java代码要比XML布局高不少,也更安全。但是写java代码又比XML写起来更麻烦,更不直观。下面我们来分析一下XML转换成java对象的过程。我们通常通过以下方式把一个XML布局转换成java对象: 通过Vie原创 2017-03-03 09:59:22 · 1918 阅读 · 0 评论 -
实现圆形图片
实现原理:得到原图的宽高,计算出圆心,取图片的短边为基准半径。创建空白Bitmap,大小为基准半径的正方形。位移原图,使其中心点和创建的空白图中心点重合。利用Android的Paint绘制叠加图,只绘制重叠部分效果完成。public class CircleImageView extends ImageView{ public CircleImageView(Context co原创 2017-03-03 10:26:26 · 505 阅读 · 0 评论 -
Android的事件分发实例分析
Android事件分发实例分析,瀑布流原创 2017-03-03 13:49:38 · 1203 阅读 · 0 评论