首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android自定义控件:一款多特效的智能loadingView

1、【画圆角矩形】 画图首先是onDraw方法(我会把圆代码写上,一步一步剖析): 首先在view中定义个属性:private RectF rectf = new RectF();//可以理解为,装载控件按钮的区域...所以自定义控件因为你需要什么样的功能可以自己去实现(当然这个方法也是在onDraw里,为什么这么个顺序讲,目的希望我希望你能循序渐进的理解,如果你觉得onDraw方代码太杂,你可以用个方法独立出去,你可以跟作者一样用...).with(animator_rect_to_angle); 6.2、变成圆形后,有一个loading加载动画 这里就是画圆弧,只是不断改变,圆弧的起始点和终点,最终呈现loading状态,也是在onDraw...); } 6.4、loading状态下回到失败样子(有点类似联网失败了) 之前6.1提到了矩形到圆角矩形和矩形到正方形的动画, 那么这里只是前面2个动画反过来,再加上联网失败的文案,和联网失败的背景图即刻...,里面还涉及到了一个自定义view CirclBigView,这个控件是全屏的,而且是从一个小圆不断改变半径变成大圆的动画,那么有人会问,全屏肯定不好啊,会影响布局, 但是这里,我把它放在了activity

61740

Android自定义控件:一款多特效的智能loadingView

】 画图首先是onDraw方法(我会把圆代码写上,一步一步剖析): 首先在view中定义个属性:private RectF rectf = new RectF();//可以理解为,装载控件按钮的区域 rectf.left...所以自定义控件因为你需要什么样的功能可以自己去实现(当然这个方法也是在onDraw里,为什么这么个顺序讲,目的希望我希望你能循序渐进的理解,如果你觉得onDraw方代码太杂,你可以用个方法独立出去,你可以跟作者一样用...).with(animator_rect_to_angle); 6.2、变成圆形后,有一个loading加载动画 这里就是画圆弧,只是不断改变,圆弧的起始点和终点,最终呈现loading状态,也是在onDraw...); } 6.4、loading状态下回到失败样子(有点类似联网失败了) 之前6.1提到了矩形到圆角矩形和矩形到正方形的动画,那么这里只是前面2个动画反过来,再加上联网失败的文案,和联网失败的背景图即刻...,里面还涉及到了一个自定义view CirclBigView,这个控件是全屏的,而且是从一个小圆不断改变半径变成大圆的动画,那么有人会问,全屏肯定不好啊,会影响布局,但是这里,我把它放在了activity

70500
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    图像处理程序框架—MFC相关知识点

    BOOL DrawEdge(LPRECT lpRect,UINT nEdge,UINT nFlags); 参数lpRect指向矩形的RECT结构的指针;nEdge指定矩形内外边界的风格,必须是一个内边界标志和外边界标志的组合...,取值为: BF_RECT:矩形的所有四边; BF_LEFT:矩形的左边; BF_BOTTOM:矩形的底边; BF_RIGHT:矩形的右边; BF_TOP:矩形的上边; BF_TOPLEFT:矩形的上边和左边...为了简化操作,MFC框架把大部分绘制操作都放在OnDraw中,OnPaint和OnPrint只构造相应的DC,然后分别调用OnDraw.也就是说,OnDraw适用于所有的设备,而OnPaint只适用于屏幕...因此我们一般用OnPaint维护窗口的客户区(例如我们的窗口客户区加一个背景图片),用OnDraw维护视图的客户区(例如我们通过鼠标在视图中画图)。...应用程序中几乎所有的绘图都在视图的 OnDraw 成员函数中发生,必须在视图类中重写该成员函数。(鼠标绘图是个特例,这在通过视图解释用户输入中讨论。)

    1.5K20

    Android CameraX NDK OpenCV(三)-- 人脸贴图替换

    按钮的事件中写实现方式,上面定义的itype类型,每点击一次就+1然后再除List的集合数取余,这样就实现了点击循环的方式,showtvStatus就是让文本显示出当前的状态。 ?...上面的分析处理中,把原来的if else改为了when的写法,处理的流程比较简单,还是用的人脸检测,返回的矩形,只不过在画矩形时不能再调用原来人脸检测的那个红框了,需要改为指定位置画图片的方式。...= null 在ViewOverlay中加入了专门为人脸贴图定义的几个变量,mFaceBitmap直接加载的资源里面的png图片,mFaceRect的矩形也是直接获取加载后的mFaceBitmap的矩形大小...,定义的这两个主要为了drawBitmap中的函数用到。...onDraw事件里针对每个一Rect矩形,我们都在原矩形的基础上再扩大10,所以除了位置偏移后再对每个点做了一个10的固定偏移,最后用drawBitmap画出图像就实现了贴图的效果。 ?

    1.3K10

    Carson带你学Android:自定义View Canvas类使用教程

    、思路不清晰、简单问题复杂化等等 今天,我将全面总结自定义View中的Canvas类的使用,我能保证这是市面上的最全面、最清晰、最易懂 目录 1....里的内容绘制到Canvas中 Picture.draw (Canvas canvas) // 还有两种方法可以将Picture里的内容绘制到Canvas中 // 方法2:Canvas.drawPicture...() // 在复写的onDraw()里 @Override protected void onDraw(Canvas canvas){ super.onDraw(canvas...src, Rect dst, Paint paint) // 参数(src,dst) = 两个矩形区域 // Rect src:指定需要绘制图片的区域(即要绘制图片的哪一部分) // Rect dst...: Path类的最全面详解 - 自定义View应用系列 4.2.6 画布操作 作用:改变画布的性质 改变之后,任何的后续操作都会受到影响 A.

    2.4K10

    安卓的日历_公认不卡的安卓手机

    一月的数据: List date = new ArrayList(); int j = 1; for (int i = 0; i < 42; i++) { if (i 的圆环包括后面的点击操作,这些元素确定位置都需要一个矩形(Rect),那么就可以先在这个View里面绘制42个矩形。...四个点确定一个矩形,可以在纸上画一下大致的图案,大致画个一两行矩形,应该就找到规律了,感觉有点像以前上学时做的找规律的数学题。...6行7列的一个矩形阵 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas);...); 我们需要在绘制的循环里面要判断这些内容: 1、是不是本月的数据(用颜色区分本月和其他月的数据) 2、是不是今天 3、有没有选中的日期 4、显示不显示农历 其中今天和选中的日期用圆环表示,就需要在当天和选中的日期的矩形中绘制圆环

    4.9K30

    教你玩转 Android RecyclerView:深入解析 RecyclerView.ItemDecoration类(含实例讲解)

    ---- 2.1 getItemOffsets() 2.1.1 作用 设置ItemView的内嵌偏移长度(inset) 如图,其实RecyclerView 中的 ItemView 外面会包裹着一个矩形(...内嵌偏移长度分为4个方向:上、下、左、右,并由outRect 中的 top、left、right、bottom参数 控制 top、left、right、bottom参数默认 = 0,即矩形和Item...把每个ItemView的所有 ItemDecoration 的 getItemOffsets 中设置的值累加起来,(每个ItemView可添加多个ItemDecoration) // 即把每个ItemDecoration...的onDraw()绘制会先于ItemView的onDraw()绘制,所以如果在Itemdecoration的onDraw()中绘制的内容在ItemView边界内,就会被ItemView遮挡住。...= 10 px 设置好onDraw()可绘制的区域 通过onDraw()绘制一个高度 = 10px的矩形(填充颜色=红色) ?

    2K21

    Android-2D绘图

    save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。 restore:用来恢复Canvas之前保存的状态。防止save后对Canvas执行的操作对后续的绘制有影响。...由于设置了画笔为红色,因此直线和矩形均为红色。这段代码同时也演示了Android中绘图操作的流程,一般是通过重载View类中的onDraw方法来实现的。...也可以直接使用系统Color类中定义的颜色。读者可以参阅Paint类中的setColor方法。 【实例演示】下面通过代码来演示如何设置画布的背景颜色。...---- drawRect方法:绘制矩形 【功能说明】该方法用于在画布上绘制矩形,可以通过指定矩形的四条边来实现,也可以通过指定Rect对象来实现。同时也可以通过设置画笔的空心效果来绘制空心的矩形。...rect:RectF对象。 left:矩形的左边位置。 top:矩形的上边位置。 right:矩形的右边位置。 bottom:矩形的下边位置。 paint:绘制时所使用的画笔。

    5.1K20

    Android画布Canvas--区域Region

    Canvas类有很多画图形的方法,除了常用的图形外,安卓还提供了Region--区域,表示Canvas图层上一块封闭的区域,可以用于将两个或多个图形做结合,还可以利用contains方法判断坐标、Rect...,画Region需要使用区域迭代器,它可以将Region区域划分成很多矩形 /** * 演示Region的View */ public class RegionView extends View {...mPaint.setColor(Color.RED); mPaint.setStyle(Paint.Style.FILL); } @Override protected void onDraw...); //将圆形和正方形区域结合 region.setPath(path,region); //结合区域迭代器使用(得到图形里面的所有的矩形区域)...可以发现一个个矩形,Region用于复杂图形的实现,需要用到图形和图形的叠加,还提供了op()方法 /** * Perform the specified Op on this region

    1.9K10

    Android CameraX NDK OpenCV(二)-- 实现Dnn人脸检测

    GIF动图 视频效果 划重点 从上面的效果很仔细的话可以看到,我们检测人脸到画上红色矩形框时偶尔会有延时的情况,这个在《Android JetPack组件CameraX使用及修改显示图像》中说过,我们在摄像机预览中上层加入了...这次改造了一下代码,把所有JNI的调用都放入一个类中,加入了initFaceDetector的初始化人脸检测和facedetector的人脸检测。...dsts.push_back(rect); //在原图上用红框画出矩形 rectangle(frame, rect, Scalar(0, 0, 255)...在ViewOverLay的类中加入一个DrawRect的方法,因为在JNI返回的是人脸检测到的矩形,所以这里加入一个画矩形的函数,后面两个参数的宽度和高度在上一篇灰度显示中提到过,我们传入的图片的大小和预览的图片大小不一致...然后在OnDraw的函数中针对矩形的四个点进行比例的偏移。 03 调用相关代码 ? 程序启动时加入复制文件及初始化DNN模型文件的调用 ?

    1.8K40

    Carson带你学Android:自定义View Path类使用教程

    基础 2.1 开放路径与闭合路径的区别 2.2 如何判断点在图形内还是图形外 判断方法分为奇偶规则 & 非零环绕规则,具体介绍如下: 举例说明1:(奇偶规则) 由上图知: p1发出的射线与图形相交.../ 特别注意:建全局Path对象,在onDraw()按需修改;尽量不要在onDraw()方法里new对象 // 原因:若View频繁刷新,就会频繁创建对象,拖慢刷新速度。...dir) // 加入矩形路径 // 路径起点变为矩形的左上角顶点 addRect(RectF rect, Path.Direction dir) //加入圆角矩形路径...// 如果是一个矩形的话,会将矩形的信息存放进参数rect中。...(rect); // b返回ture, // rect存放矩形参数,具体如下: // rect.left = 0 // rect.top = 0

    71120

    自定义View学习——仿QQ消息气泡拖拽黏连删除

    该篇主要是对MessageBubbleView仿QQ消息控件的修改。因为我发现这个QQ消息气泡开源控件是规则的圆,所以稍加修改,对onDraw()绘画图形做了变动,更加接近于QQ气泡了。...参考博客:仿 QQ 未读消息气泡,可拖拽删除,粘连效果 参考博客中的实现思路: 首先我们需要两个圆,一个是在原点不需要跟随手指的圆,一个是跟随手指的圆,当用户开始点击时,绘制跟随手指的圆和圆上的未读消息数量...注意:使用时需要在所有父布局中加入android:clipChildren="false"属性,使气泡可以在父布局中拖动。...bitmapRect; /** * 消失动画播放图片的index */ int bitmapIndex; /** * 判断是否正在播放消失动画,防止死循环重复绘制...贝塞尔辅助图.png 其中主要是对绘制onDraw()内做了修改,将圆替换成圆角矩形。加了判断当当前内容宽度小于设置的直径时画圆显示,当内容宽度大于等于直径时显示圆角矩形。

    1.5K30

    【RecyclerView】 六、RecyclerView.ItemDecoration 条目装饰 ( 简介 | onDraw | onDrawOver | getItemOffsets )

    () 方法 onDraw方法 : 在提供给 RecyclerView 的画布上绘制合适的装饰 , 在该方法中绘制的任何内容, 都在 item 布局组件绘制之前绘制, 绘制的内容都被 item 布局覆盖...@NonNull State state) 参数说明 : ① @NonNull Rect outRect : 接受输出的矩形 ; ② @NonNull View view : 要装饰的子 View ;...outRect 所有的 4 个字段值为 0 ; * * * 如果需要取访问 Adapter 适配器中的关联数据 , 调用 RecyclerView.getChildAdapterPosition...(View) * 方法获取适配器中的该 View 组件位置 ; * * @param outRect 接受输出的矩形...(View) * 方法获取适配器中的该 View 组件位置 ; * * @param outRect 接受输出的矩形

    60700

    模仿QQ运动item的界面

    2其次利用好canvas.translate()这个方法,计算好大小移动canvas的原点。 3最后就是调用api提供的各种方法画图就是了。这么说是不是太过于简略了呢,好,现在就来 看看那具体的吧。...接下来也很简单,就是初始化画笔等变量,以便于后面看画图更简单: public void initValue(){ animSet=new AnimatorSet(); //外圆的画笔 mCirclePaint...= (int) Math.round(widthView / mWaveLength + 1.5); marginBottomText=radius/4; } 好了,最重要的初始化都差不多了,现在就来画图...(画画)吧先贴出所有画的代码然后再逐一讲解吧: protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.save();...img7.PNG 最后就是画底下的矩形和头像和文字了。

    1K30

    android 自定义控件之-绘制钟表盘

    引言 Android 自定义 View 应用非常广泛,最近逛 github 是偶然发现一个 Demo 感觉写的很好,我结合着这个项目的内容,给大家讲讲如何绘制时钟表盘,也算是加深下自己对自定义 View...如果是绘制文本则是 Rect 。 所以绘制外围圆环,首先要定义一个 RectF 变量用于绘制圆环,在定义一个 Rect 变量,用于绘制文字。...注 mCanvas 绘图类是 onDraw 中的参数,我们在 onDraw 中将它保存起来 // 测量文字大小 private Rect mTextRect = new Rect()...,在绘制过程中,控制我们圆环的 mCircleRectF 对象,是以整个控件大小为边界的,所以原因就很明了了,那么我们只要将 mCircleRectF 对象设置成一个正方形就行。... mRadius ,我们就取控件长和宽中,短的那个的一半为它的值,除此之外还有一种情况,如果控件设置了 padding 那么,如果知识取长宽中短的,那么无论 padding 的值怎么设置,控件的半径始终都是保持长宽中短的那边的一半不变

    1.1K20
    领券