自定义
文章平均质量分 64
zhaihaohao1
这个作者很懒,什么都没留下…
展开
-
Android中重温自定义控件05----onDraw绘制视图
在实际使用中,继承 View, 在 onDraw方法中绘制视图Paint 画笔类,定义了画笔的颜色、样式、粗细、阴影等,常用方法说明如下:setAntiAlias(); 设置是否使用抗锯齿功能。主要用于画圆圈等曲线。setDither(); 设置是否使用防抖动功能。etColor(); 设置画笔的颜色。setShadowLayer(); 设置画笔的阴影区域与颜色。setStyle()...原创 2019-06-04 10:26:36 · 803 阅读 · 0 评论 -
Android中重温自定义控件04----onLayout设置子布局的位置
一般在继承 ViewGroup 的时候,重写 onLayout 方法,设置子布局的位置这个例子是设置 offsetLayout 子布局的位置效果图如下:实现步骤:1.自定义控件 OffsetLayoutpackage com.zhh.android;import android.content.Context;import android.util.AttributeS...原创 2019-06-03 19:28:22 · 1871 阅读 · 1 评论 -
Android中重温自定义控件03----布局测量的使用,自定义ListView
当 ListView 被嵌套在 ScrollView 等滑动控件中,只能展示一行,这时候就需要自定义了代码如下:布局文件:activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/an...原创 2019-06-03 17:24:25 · 227 阅读 · 0 评论 -
Android中重温自定义控件02----布局尺寸的测量
自定义控件中比如在:自定义ListView, 流式布局等 的时候需要测量布局的宽高所以这里讲讲布局宽高的测量下面是MeasureSpec类的测量模式: MeasureSpec类的测量模式 视图宽、高的赋值方式 说明 AT_MOST MATCH_PARENT 达到最大...原创 2019-06-03 17:08:03 · 312 阅读 · 0 评论 -
Android中重温自定义控件01----文本尺寸的测量,图片尺寸的测量
一、文本尺寸的测量效果图:实现步骤:activity_main.xml 布局中定义控件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_par...原创 2019-06-03 14:47:11 · 258 阅读 · 0 评论 -
Android实现工作管理甘特图效果
利用现成的控件实现(很多时候会误以为要自定义控件,所以我放到了,自定义目录下)效果图:思路:左右滑动使用HorizontalScrollView上下滑动使用ScrollView然后使用代码添加进度条,并设置各种属性核心代码:GanteActivity中package com.zhh.android;import android.app.Activity;import a...原创 2019-01-02 13:15:49 · 2486 阅读 · 0 评论 -
Android中Drag and Drop拖拽功能的使用2-----交换布局中子控件的位置
Android中的拖拽功能是有自带的api的;(很多时候会误以为要自定义控件,所以我放到了,自定义目录下)参考文档:http://www.android-doc.com/guide/topics/ui/drag-drop.html我写了一个例子分析:效果图:思路:1主要用到了View的startDrag(startDragAndDrop API24+) 方法2拖拽的监听OnDrag...原创 2019-01-02 12:39:49 · 1265 阅读 · 0 评论 -
Android中Drag and Drop拖拽功能的使用1-----基本实现
Android中的拖拽功能是有自带的api的;(很多时候会误以为要自定义控件,所以我放到了,自定义目录下)参考文档:http://www.android-doc.com/guide/topics/ui/drag-drop.html我写了一个例子分析:效果图:思路:1主要用到了View的startDrag(startDragAndDrop API24+) 方法2拖拽的监听OnDrag...原创 2019-01-02 11:44:56 · 2731 阅读 · 1 评论 -
Android自定义控件----继承ViewGroup实现卫星菜单
卫星菜单,在github上很多,这里自定义主要是练习自定义控件效果图:主要思路:自定义ViewGrounp中有6个子控件一个加号(位于圆心)其余5个在周围其中使用的是补间动画5个周围的按钮是隐藏在,周围的,当点击加号,5个按钮的动画跑到周围后,再显示出来。点击消失也是这个道理。(这样做是因为,补间动画不能改变控件的实际属性,属性动画没有这个缺点)知识点:自定义View...原创 2018-09-28 09:55:48 · 204 阅读 · 0 评论 -
Android自定义控件----继承ViewGroup侧滑菜单5,抽屉式侧滑,QQ5.0效果(完结)
效果图: 项目结构: QQ5.0的侧滑 和抽屉菜单的区别 简单的说就是在onScrollChanged方法中加入了缩放,偏移,渐变属性动画效果区别1:内容1:内容区域 1.0到0.7 缩放效果 scale:1.0 到 0.0 0.7+0.3 * scale区别2:菜单的偏移量需要修改区别3:菜单显示是有缩放以及透明度的变化 缩放:0.7到1.0...原创 2018-09-17 16:26:37 · 249 阅读 · 0 评论 -
Android自定义控件----继承ViewGroup侧滑菜单4,抽屉式侧滑(完结)
效果图: 项目结构: 注意这个在写之前引入了一个属性动画的jar包nineoldandroids-2.4.0.jar 下载源码中找到抽屉式侧滑 普通侧滑:菜单是从左边拖出来的 抽屉式侧滑:菜单仿佛是在内容区域下面 思路:重写 onScrollChanged方法监听滑动 根据滑动的值设置菜单布局的属性动画自定义控件SlidingMenu...原创 2018-09-17 16:15:36 · 230 阅读 · 0 评论 -
Android自定义控件----继承ViewGroup侧滑菜单3,普通侧滑菜单,添加菜单切换按钮(完结)
项目结构:思路: 对外暴露一个菜单打开和关闭菜单的方法toggle 当打开时this.smoothScrollTo(0, 0);滑动菜单显示 当关闭时this.smoothScrollTo(mMenuWidth, 0);菜单隐藏 在外部写个按钮点击事件调用方法toggle,即可 具体代码: 自定义控件SlidingMenu中package...原创 2018-09-17 15:58:34 · 177 阅读 · 0 评论 -
Android自定义控件----继承ViewGroup侧滑菜单2,普通侧滑菜单,自定义属性
项目结构: 实现思路: 1在values文件加下的attr.xml文件中定义属性名称(桥梁) 2在SlidingMenu的构造方法中拿到attr.xml中定义的属性,并赋值变量 3在布局文件中使用此属性hyman:rightPadding=”150dp”,注意要命名空间 xmlns:zhh 在values/attr.xml中&lt;?xml version="1.0" en...原创 2018-09-17 15:27:37 · 194 阅读 · 0 评论 -
Android自定义控件----继承ViewGroup侧滑菜单1,普通侧滑菜单,实现侧滑
效果图: 实现思路: 1 在布局中写一个 HorizontalScrollView(自定义控件SlidingMenu继承 HorizontalScrollView)2 HorizontalScrollView的子布局是一个水平线性布局, 水平线性布局里面一个布局作为菜单,一个布局作为内容3 SlidingMenu继承HorizontalScrollView左右...原创 2018-09-17 15:11:12 · 243 阅读 · 0 评论 -
Android自定义控件----继承View图案解锁4,外部使用(完结)
效果图: 入口: 设置图案密码: 测试图案密码是否正确 自定义控件:GestureLockpackage com.example.zhh.shoushimima4;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;...原创 2018-09-14 16:38:09 · 204 阅读 · 0 评论 -
Android自定义控件----继承View图案解锁3,控件对外接口的实现
绘制完成后,提供给外部的回调 setOnDrawFinishedListener(OnDrawFinishedListener listener) 方法 OnDrawFinishedListener 接口重置点的方法,供外部调用 resetPoints() 方法 具体代码如下: 自定义控件:GestureLockpackage com.example.zhh.shoushim...原创 2018-09-14 16:19:26 · 205 阅读 · 0 评论 -
Android自定义控件----继承View图案解锁2,OnTouch事件绘制出选中点和连线
效果图: 具体代码: 自定义控件 GestureLockpackage com.example.zhh.shoushimima2;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics....原创 2018-09-14 16:09:29 · 281 阅读 · 0 评论 -
Android自定义控件----继承View图案解锁1,绘制9个点
思路:九宫格是位于屏幕中间的,一个大方格 中,套了16个小方格 计算出大方格距离顶部的偏移量offset 距离中左边的距离是0 计算小方格的宽度 计算出点的半径 根据上面的条件就能算出9个点的坐标就能处置9个点 具体代码如下: 自定义控...原创 2018-09-14 15:58:28 · 430 阅读 · 0 评论 -
Android自定义控件----继承ViewGroup自定义实现流式布局
1效果图: 2项目结构 3思路:1自定义ViewGrounp,写一个类继承ViewGrounp2重写onMeasure();测量子View的宽高,设置自己的宽高;onMeasure()根据子View的布局文件,为子View设置测量模式和测量值测量=测量模式+测量值测量模式有3种1.EXACTLY(精确值):100dp,match_parent2.AT_MOST:wra...原创 2018-07-26 09:19:11 · 398 阅读 · 0 评论 -
Android中贝塞尔曲线
从去年开始了解贝塞尔曲线之后,发现开发中,不管是Android/Ios平台,还是web前端等,都有贝塞尔曲线的应用,通过绘制贝塞尔曲线,可以帮助开发者实现很多效果,例如一段时间内很流行的粘合型的下拉刷新、又如天气曲线图,同时,以贝塞尔曲线为基础的贝塞尔工具是所有绘图软件的最常用最实用的工具。什么是贝塞尔曲线贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应...原创 2018-07-06 16:34:19 · 328 阅读 · 0 评论 -
Android中属性动画7----ValueAnimator.ofObject的使用(抛物线运动)
本篇文章仅仅是把https://blog.csdn.net/zhaihaohao1/article/details/80941482的运动轨迹从直线变成了抛物线(就是美团购物车动画),其它都一样,代码上BezierEvaluator中的公式变了(变成了贝塞尔曲线二阶公式),坐标要起点,终点,和中间一个点的坐标。 开始讲: 效果图: 估值器中:BezierEvaluator 中pack...原创 2018-07-06 15:46:34 · 1617 阅读 · 0 评论 -
Android中属性动画6----ValueAnimator.ofObject的使用(从一个点运动到另一个点(直线))
看这篇文章之前先看https://blog.csdn.net/zhaihaohao1/article/details/80941009 开始讲:效果图: 实现思路如下 1先创建一个估值器:package com.zhh.myapplication.test1;import android.animation.TypeEvaluator;import android.grap...原创 2018-07-06 15:16:46 · 938 阅读 · 0 评论 -
Android自定义控件的总结
Android自定义控件的总结: 一、原理 https://blog.csdn.net/zhaihaohao1/article/details/78460228 https://blog.csdn.net/zhaihaohao1/article/details/78286464二、View的生命周期 https://blog.csdn.net/zhaihaohao1/article/d...原创 2018-07-01 16:01:03 · 336 阅读 · 0 评论 -
Android自定义控件----继承View实现开关的滑动
本篇文章是对https://blog.csdn.net/zhaihaohao1/article/details/78286464 的补充,实现按钮的滑动开关 效果图: 自定义控件MyToggleButton中的实现代码:package com.zhh.mybutton;import android.content.Context;import android.graphics....原创 2018-06-22 14:01:50 · 559 阅读 · 0 评论 -
Android自定义控件----继承ViewGroup自定义ViewPager2,使用Scroller实现平滑移动
在上一篇文章中 Android自定义控件—-继承ViewGroup自定义ViewPager(学习) 中由于使用scrollTo()和scrollBy()这两个方法进行滑动,但是有个问题就是滑动很生硬,所以在这篇文章使用Scroller对象实现平滑的滑动,Scroller对象的使用的基本步骤:// 1. 创建Scroller的实例 // 2. 调用startScroll()方法...原创 2018-06-04 11:05:44 · 1595 阅读 · 0 评论 -
Android自定义控件----继承ViewGroup自定义ViewPager1(学习)
1效果图 2项目结构 3源码: 3.1自定义控件ImageViewGrouppackage com.zhh.mybanner;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.util.Log;i...原创 2018-05-24 14:55:04 · 875 阅读 · 0 评论 -
Android自定义View——贝塞尔曲线实现水波纹进度条
1效果图 2自定义进度条package com.zhh.waveview;import android.animation.ValueAnimator;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphi...原创 2018-05-21 16:59:11 · 1124 阅读 · 1 评论 -
Android中ListView下拉刷新功能
效果图:项目结构:代码:自定义listViewReFlashListViewpackage com.zhh.refreshlistview;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.vi原创 2017-11-17 17:39:32 · 4033 阅读 · 1 评论 -
Android中ListView上拉加载(分页)功能
思路1添加页脚,并隐藏2监听滑动事件,判断当滑到低部时,显示页脚,并加载数据(接口回调到activity中加载)3数据添加完成之后隐藏页脚效果图:项目结构:自定义listView类LoadListViewpackage com.zhh.android;import android.content.Context;import android.uti原创 2017-11-17 17:30:58 · 2996 阅读 · 0 评论 -
Android自定义控件基础知识----View的生命周期
项目结构核心代码:MyTextView中package com.zhh.myview;import android.content.Context;import android.content.IntentSender;import android.graphics.Canvas;import android.util.AttributeSet;import a原创 2017-11-10 15:25:16 · 683 阅读 · 0 评论 -
Android自定义控件10----继承View实现水波纹效果
效果图:项目结构:代码:自定义控件WaveViewpackage com.example.shuibowen;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;原创 2017-11-09 13:39:08 · 238 阅读 · 0 评论 -
Android自定义控件9----scrollTo/scrollBy实现滑动和直接绘制滑动的对比使用demo测试
效果图:项目结构:代码:MainActivitypackage com.example.scrolltest;import android.app.Activity;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.L原创 2017-11-08 15:57:34 · 405 阅读 · 0 评论 -
Android自定义控件0----View绘制的原理
View绘制过程1.测量-measure()---onMeasure();2.指定在屏幕的位置--layout()--onLayout() 子类只有建议权,父类才有决定权 一般view中不使用,并且源码中是空的方法; ViewGroup中改方法是抽象的,必须要实现,因为要指定位置孩子的位置3.绘制控件到屏幕上--draw()---onDraw()自定义View的时候一原创 2017-11-06 18:00:44 · 278 阅读 · 0 评论 -
Android自定义控件8----直接绘制也可完成滑动
效果图:核心代码: /** * 设置滑动事件 */ @Override public boolean onTouchEvent(MotionEvent event) { super.onTouchEvent(event);//执行父类的方法 switch (event.getAction()){原创 2017-11-06 17:52:44 · 230 阅读 · 0 评论 -
Android自定义控件7----滑动动画scrollTo/scrollBy使用
#移动动画的三种方式: 1使用scrollTo/scrollBy 用于做View的滑动,它可以比较方便实现滑动的效果,并且不影响内部元素的点击事件;它只能滑动View的内容,并不能滑动View本身。 调用View的scrollTo()和scrollBy()是用于滑动View中的内容,而不是把某个View的位置进行改变。如果想改变莫个View在屏幕中的位置,可以使用如下原创 2017-11-06 17:45:55 · 2345 阅读 · 0 评论 -
Android自定义控件6----继承ViewGroup自定义侧滑删除菜单
效果图:项目结构:核心代码:MainActivity中package com.example.cehua;import android.app.Activity;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.L原创 2017-11-05 13:46:16 · 320 阅读 · 0 评论 -
Android自定义控件5----继承View通讯录索引功能之4在下按和移动时,列表更新
效果图:项目结构:核心代码自定义索引:IndexViewpackage com.example.mytongxunlu4;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphic原创 2017-11-01 10:13:45 · 462 阅读 · 0 评论 -
Android自定义控件5----继承View通讯录索引功能之3在按下或和移动时显示更新提示字母
效果图:项目结构:核心代码:自定义控件IndexViewpackage com.example;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import原创 2017-11-01 09:53:38 · 400 阅读 · 0 评论 -
Android自定义控件5----继承View通讯录索引功能之2在按下和移动的时候操作字母变色
效果图:项目结构:核心代码:自定义IndexViewpackage com.example;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import a原创 2017-11-01 09:41:24 · 544 阅读 · 0 评论 -
Android自定义控件5----继承View通讯录索引功能之1初始化显示字母列表
效果图:项目结构:核心代码:自定义索引的类IndexViewpackage com.example.mytongxunlu;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics原创 2017-11-01 09:06:32 · 472 阅读 · 0 评论