- 博客(53)
- 资源 (8)
- 收藏
- 关注
原创 Anroid事件分发机制
文章目录事件分发机制Event事件案例:移动ViewActivity-onTouchEvent实现自定义View-onTouchEvent实现自定义ViewGroup-onTouchEvent实现View对象.setOnTouchListener(OnTouchListener l)实现事件的分发机制源码分析Activity事件处理ViewGroup事件处理View事件处理事件分发总结dispatchTouchEventonInterceptTouchEventonTouchEvent事件分发机制Eve
2021-06-28 17:02:41
570
原创 《Android自定义控件入门到精通》--文章目录
Android自定义控件入门到精通自定义控件的流程(扫盲)一、基础绘图Point点Line线几何图形Path路径Region区域Text文字Paint画笔Paint基础知识点Paint.setPathEffectPaint.setShaderPaint.setXfermodePaint.setColorFilterCanvas画布二、绘图、测量、布局流程View树的绘制流程View树的测量流程View树的布局流程三、动画帧动画FrameAnimati
2021-06-24 10:37:13
660
原创 Android自定义控件入门到精通--自定义控件的流程(扫盲)
文章目录自定义控件的流程步骤一:继承View或ViewGroup步骤二:构造函数步骤三:定义自定义属性步骤四:xml布局引用MyView控件步骤五:自定义属性的获取步骤六:自定义View尺寸测量步骤七:自定义View布局步骤八:自定义View内容绘制自定义控件的流程自定义View如何创建,如何引用,如何自定义属性,如何测量,如何布局,如何绘制内容?这篇扫个盲,讲下自定义控件的流程:步骤一:继承View或ViewGroup//继承至View,用于自身内容的绘制public class MyView
2021-06-23 10:21:09
584
1
原创 Android自定义控件入门到精通--ColorFilter
文章目录ColorFilterPorterDuffColorFilterLightingColorFilterColorMatrixColorFilter颜色矩阵公式过滤颜色反色去色颜色互换色相调整ColorFilterBlendModeColorFilter是Api29之后加入的,目前不作研究!PorterDuffColorFilterPorterDuffColorFilter(int color,PorterDuff.Mode mode)color : SRC(源)mode :混合模式
2021-06-23 09:54:33
1398
原创 Android自定义控件入门到精通--Canvas(画布)
文章目录Canvas(画布)translate (平移)rotate(旋转)scale(缩放)skew(斜切)clip(裁剪)Canvas 状态的保存与恢复Canvas 多画布Canvas(画布)画布:在Ps中,画布就是你的操作空间,画布之上有图层图层:“我是谁”分别写在三个透明图层上,由于所有图层都是透明的,所以上层图层不会遮挡底下两层的内容,我们看见的还是全部的文字我们还可以对选中的图层进行平移,缩放,旋转,斜切,还可以对整个画布进行裁剪在Andrond的Canvas中,Canvas表
2021-06-23 09:54:16
966
1
原创 Android自定义控件入门到精通--属性动画
文章目录属性动画ValueAnimatorValueAnimator.ofIntValueAnimator.ofArgb:EvaluatorValueAnimator.ofObjectValueAnimator.ofPropertyValuesHolderObjectAnimatorAnimatorSetanimatorSet.playTogether()animatorSet.playSequentially()animatorSet.play().with().before().after()属性动画
2021-06-23 09:53:55
510
原创 Android自定义控件入门到精通--Interpolation插值器
文章目录Interpolation插值器LinearInterpolatorAccelerateInterpolatorAccelerateDecelerateInterpolatorDecelerateInterpolatorAnticipateInterpolatorPathInterpolatorBounceInterpolatorOvershootInterpolatorAnticipateOvershootInterpolatorCycleInterpolatorLookupTableInterp
2021-06-23 09:53:40
823
1
原创 Android自定义控件入门到精通--补间动画
文章目录补间动画使用方法一:xmltranslate(平移动画)rotate(旋转动画)scale(缩放动画)alpha(透明度动画)set(组合动画)属性及含义实现方法二:java代码补间动画补间动画也称TweenAnimation/ViewAnimation,补间动画为View的两种状态间的过度动画,但只是视觉上的改变,并没有真正改变View本身的属性。补间动画有以下几种TranslateAnimation(平移动画)RotateAnimation(旋转动画)ScaleAnimation(
2021-06-23 09:53:25
451
1
原创 Android自定义控件入门到精通--帧动画
文章目录帧动画使用方法一:xml使用方法二:java动画分为三种帧动画(FrameAnimation/DrawableAnimation)补间动画(TweenAnimation/ViewAnimation)属性动画(PropertyAnimation)帧动画类似我们常见的gif动画(由一帧一帧的图片循环播放达到动画效果)帧动画优点是使用简单又能实现比较复杂的动画效果使用方法一:xml步骤一:准备图片素材步骤二:在drawable目录下写动画xml文件(anima_discove.
2021-06-23 09:53:12
250
原创 Android自定义控件入门到精通--View树的布局
文章目录View树的布局LayoutParams流式标签布局View树的布局经过前面View树的绘制流程和View树的测量流程的学习,相信大家自己分析View树的布局流程已经没有什么难度了ViewRootImpl.java//ViewRootImpl.javaprivate void performTraversals() { //测量流程 measureHierarchy(...)-->performMeasure(...); //布局流程 performLayo
2021-06-23 09:52:57
262
原创 Android自定义控件入门到精通--View树的测量流程
文章目录View树的测量流程View树的测量流程小故事:公司计划搞团建,大狗,二狗,三狗是三个部门的领导,他们跑到财务室去跟财务妹子要经费。财务妹子:你们各自要多少经费,提交申请给我就好了大狗比较实诚,提交了500块的预算申请,财务妹子二话不说,直接给了大狗500块,大狗拿着500块就跟部门的人一起去吃酸辣粉了。二狗又精又胆小,即怕要多了公司不高兴,又怕要少了底下的兄弟们不高兴。于是二狗跟财务妹子提了申请,写明:“按公司预算给经费!”,又是财务妹子也不兜着,把老板交代的单部门预算5000元都给了
2021-06-23 09:52:42
321
1
原创 Android自定义控件入门到精通--View树的绘制流程
文章目录View树的绘制流程View树的绘制流程测量、布局、绘制是自定义控件的三大流程自定义控件分为两种:一种为继承至View,我们称之为自定义View一种为继承至ViewGroup,我们称之为自定义ViewGroup(ViewGroup也是继承至View)测量和布局我们先放一放,前面我们学了自定义View的绘制,这篇我们来了解下View树的绘制流程View的绘图有两个相关的方法()://View.javaprotected void dispatchDraw(Canvas canva
2021-06-23 09:52:23
248
原创 Android自定义控件入门到精通--Xfermode
文章目录XfermodePorterDuff.Mode示例一:轨迹截图示例二:绘画板示例三:图片上色动画(进度演示?)Xfermode的脏区及解决办法示例四:刮刮卡效果XfermodeXfermode在Android高版本中只保留了一个实现类PorterDuffXfermode,在Android24及以下低版本中,你还可以看到另外两个实现类AvoidXfermode,PixelXorXfermode,高版本已移除了,这里就不展开讲了,其中AvoidXfermode可以用于做选区和选区填充,非常强大,但
2021-06-22 16:31:41
635
原创 Android自定义控件入门到精通--Shader
文章目录ShaderBitmapShaderTileMode.CLAMPTileMode.REPEATTileMode.MIRRORLinearGradientLinearGradient(x0,y0,x1,y1,int color0, int color1, TileMode tile)LinearGradient(x0,y0,x1,y1,int[] colors, float[] positions, TileMode tile)RadialGradientSweepGradientComposeSha
2021-06-22 16:26:10
610
1
原创 Android自定义控件入门到精通--PathEffect路径效果
文章目录PathEffectDashPathEffectPathDashPathEffectCornerPathEffectSumPathEffectComposePathEffectDiscretePathEffectPathEffect路径效果,有六个实现类。DashPathEffectDashPathEffect(float intervals[], float phase) 虚线路径效果intervals:描述虚线效果的数组,按这个数组描述循环绘制效果phase:开始绘制的偏移量
2021-06-22 16:18:17
765
原创 Android自定义控件入门到精通--Paint基础知识
文章目录Paint基础知识常用基础函数Paint.setStylePaint.setStrokeCapPaint.setTypefacePaint.breakTextPaint.setStrokeJoinPaint.setMaskFilterBlurMaskFilter硬件加速EmbossMaskFilterPaint.setShadowLayerPaint基础知识paint画笔,跟我们Ps中的画笔有点类似,比如Ps中的画笔工具和图案图章工具。常用基础函数我们先来系统的了解下Paint的一些基础的函
2021-06-22 16:14:09
610
原创 Android自定义控件入门到精通--Text文本
文章目录TextdrawText(String text, float x, float y, Paint paint)Paint.setTextAlign(Paint.Align)Align.LEFTAlign.CENTERAlign.RIGHTdrawTextOnPath(String text, Path path, float hOffset,float vOffset, Paint paint)drawPosText (char[] text, int index, int count, floa
2021-06-22 16:09:47
698
原创 Android自定义控件入门到精通--Region区域
文章目录RegionRegion.set()Region.get()getBounds()Region.getBoundaryPath()Region.op()op(Region ,Op)op(Region,Region,Op)Region的其它方法RegionRegion(区域),跟Rect(矩形)类似也有很大不同,一个Region是由一个或多个Rect组成Region构造:Region() 构造一个空的区域Region(Region) 根据现有的区域构造新的区域,等于复制一个一样的Regi
2021-06-22 16:04:47
1832
1
原创 Android自定义控件入门到精通--Path路径
文章目录Path三角形几何图形arcTo(RectF oval, float startAngle, float sweepAngle,boolean forceMoveTo)贝塞尔曲线二阶贝塞尔曲线:quadTo(float x1, float y1, float x2, float y2)三阶贝塞尔曲线:cubicTo(float x1, float y1, float x2, float y2,float x3, float y3)Path在几何图形的绘制中,我们发现并没有画三角形等多边形的函数,
2021-06-22 15:59:44
528
1
原创 Android自定义控件入门到精通--几何图形绘制
文章目录几何图形绘制矩形圆角矩形椭圆圆弧几何图形绘制矩形drawRect(float left, float top, float right, float bottom, Paint paint)drawRect(Rect r, Paint paint)drawRect(RectF rect, Paint paint)矩形由左上右下四个值决定,这三个方法其实都差不多,没啥大的区别,我们就挑一个示范下 private void init() { mPaint = ne
2021-06-22 15:49:46
303
1
原创 Android自定义控件入门到精通--Line线
文章目录LinedrawLine(float startX, float startY, float stopX, float stopY, Paint paint)drawLines(float[] pts, Paint paint)drawLines(float[] pts, int offset, int count, Paint paint)LineLine的绘制也有三个方法drawLine(float startX, float startY, float stopX, float stop
2021-06-22 15:42:30
558
原创 Android自定义控件入门到精通--Point(点)
文章目录Point(点)drawPoint(float x, float y,Paint paint)drawPoints(float[] pts,Paint paint)drawPoints(float[] pts, int offset, int count,Paint paint)Android自定义View的实现需要继承View,然后重载onDraw方法去绘制自己的东西public class PointView extends View { private Paint mPaint;
2021-06-22 15:38:14
1772
原创 javaFx使用vlc播放器播放流媒体
vlc是一个很不错的视频播放器下载地址 https://www.videolan.org/如何测试流媒体链接?如何在javaFx项目中集成vlc播放器?https://github.com/caprica1、导入依赖jar <dependency> <groupId>uk.co.caprica</groupId> <artifactId>vlcj-javafx</artifactId
2020-07-10 19:48:49
3057
6
原创 android音乐播放器开发
如何快速开发一款音乐播放器?文末提供体验demo,实现了播放控制,进度更新,全网音乐免费下载,欢迎技术交流!音乐播放器无非就是对mediaplayer对象的操作了,当然需要开启服务,而服务为了保活,只能使用前台服务。if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundService(new Intent(mContext, MusicService.class)); } els
2020-06-03 17:10:38
1610
3
原创 Graphviz+python3实现流程图绘制
下载安装(一定要配置环境变量)https://graphviz.gitlab.iographviz属性看这里:https://graphviz.gitlab.io/documentation/中文乱码问题设置元素的字体如:‘fontname’:‘FangSong’举个栗子from graphviz import Digraph #找不到graphviz的时候,直...
2019-04-02 16:55:01
9632
原创 Mysql安装[centos 7.4]
环境 centos 7.4安装rm -rf /var/lib/mysql[请选确保要先删除mysql这个文件夹,不然mysql 初始化不了,启动会失败]cd /usr/local/src [定位到这个目录下放rpm源]wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmrpm -i...
2018-07-06 18:27:50
176
原创 Mysql安装[windows]
环境mysql-5.7.19-winx64 window 10 64位下载 mysql下载地址:https://www.mysql.com/downloads/ 选择DOWNLOADS&amp;amp;gt;Community&amp;amp;gt;Mysql Community Server下的DOWNLOAD 下载后解压到自已喜欢的位置 我放在:D:\myinstall\mysql-5.7.19-winx64配置
2017-08-02 16:09:53
468
原创 Html布局笔记
text-align:center 相当于TextView中的gravity=”center-horizontal”,当前标签内容水平居中。 vertical_align:middle 垂直居中,使用是有条件的: 1、display:inline-block; 2、line-height:200px /行高为当前标签的高度/padding-bottom app中常常用到weigh
2017-01-23 12:19:02
428
原创 微信支付之终级教程版,-1 问题全面分析
[TOP] 微信支付,说实话,做这个没有趟过水,踩过坑,三分钟搞定的还真没几人,简单是简单,但是…. 写官方文档的人比较懒,挖了不少坑!那么,我就写个3分钟上手的文章,就三分钟!集成APP支付一、下载SDK(当前最新3.1.1)和官方DEMO二、集成支付环境* 将jar包加到工程中,将demo中的WXPayEntryActivity.java 复制到自己工程中,注意了,要保持全包路径,也就是说你自
2016-08-26 14:31:38
3681
原创 android代码混淆
工具:ADT 这里我们使用android自带的proguard混淆 新建项目会有proguard-project.txt project.properties两个文件一、project.properties# This file is automatically generated by Android Tools.# Do not modify this file -- YOUR CHAN
2016-08-05 19:07:15
475
原创 使用WebSocket实现图文直播功能
WebSocket,简单理解就是H5自带的一套Socket API,用它来实现客户端与服务端的长连接。使用案例: 实现一个活动的实时报道,也就是图文直播功能首先来看下项目的结构,很简单,就两个类 MyWebSocket.java 这个就是socket的服务端,功能方面只需添加相应的注解即可,注意类名上的注解@ServerEndpoint(“/websocket”),这个/websocket就好
2016-07-15 17:06:19
13778
1
原创 android studio获取sha1值
在android studio提供的命令终端下输入/* * C:\Users\Administrator\.android\debug.keystore:你的keystore全路径名,默认的debug.keystore就是在这个目录下 */keytool -list -keystore C:\Users\Administrator\.android\debug.keystore
2016-04-28 15:02:29
494
转载 Android 事件机制
Android 中与 Touch 事件相关的方法包括: dispatchTouchEvent(MotionEvent ev) onInterceptTouchEvent(MotionEvent ev) onTouchEvent(MotionEvent ev) 能够响应这些方法的控件包括:ViewGroup 及其子类、Activity。 方法与控件的对应关系如下表所示: Touch 事件
2016-04-27 11:44:40
367
原创 Theme.AppCompat无全屏主题解决办法
V7包中的Theme.AppCompat主题系列中并没有全屏样式,这个是为什么,只有作者知道……解决办法:自定义主题<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light"> <item name="windowNoTitle">true</item>
2016-04-25 10:14:05
12909
1
原创 快速使用Ubuntu
原料 ubuntu 15.10 leovo Y430P Ubuntu系统安装 双系统:下载Ubuntu ISO文件制作启动盘(大白菜U盘制作工具) 在win 系统上安装BCDEasy添加引导系统,这样做会使用win 系统来引导Ubuntu系统启动,这样的好处就是当Ubuntu系统挂了,可以直接格式化安装了Ubuntu系统的磁盘块,重新安装Ubuntu,如果没有这步,即Ubuntu引导win
2016-03-26 01:13:37
820
4
原创 android AIDL技术的简单演示
创建服务端项目创建客户端项目客户端调用服务端中的方法一:创建服务端项目 创建两个文件 TestAidl.aidl 与 AidlService.java TestAidl.aidl AidlService.java 到这服务端就OK了,注意其中的Stub是Aidl文件自动生动的。二:创建客户端项目 1.将服务端的aidl文件拿到客户端并保持目录名一样
2015-12-09 18:03:19
463
原创 android studio之JNI技术
一、环境准备 1.JDK 2.NDK 3.android studio 二、准备测试的项目 1.新建app项目 2.编写一个本地方法类,如下参考/** * Created by jhone on 2015/11/23. */public class JNIUtils { private static JNIUtils jniUtils;
2015-11-24 16:24:11
1048
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人