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

Android 自定义View 之 圆环进度条

,这一次我们不需要再去创建项目了,就用我之前创建的EasyView。...declare-styleable中抽出来了,因为我们可能多个自定义控件会用到同样的属性,那么根据属性不可重名的原则,我们需要抽离出来,然后在declare-styleable引用。...二、构造方法   现在属性样式已经有了,下一步就是写自定义View的构造方法了,在com.llw.easyview包下新建一个CircularProgressBar类,里面的代码如下所示: public...,因为我们是一个圆环,实际上也是一个圆,圆的宽高一样,所以中心点的x、y轴的位置就是一样的,然后是确定一个矩形的左上和右下两个位置的坐标点,通过这两个点就能绘制一个矩形,接下来就是绘制进度条背景。...,如下图所示: 在MainActivity中使用,修改onCreate()方法中的代码,如下所示: //圆形进度条操作 CircularProgressBar cpbTest

2.1K20

Android 自定义开源库 EasyView

这是一个简单方便的Android自定义View库,我一直有一个想法弄一个开源库,现在这个想法付诸实现了,如果有什么需要自定义的View可以提出来,不一定都会采纳,合理的会采纳,时间周期不保证,咱要量力而行呀...工程build.gradle 或 settings.gradle配置    代码已经推送到MavenCentral(),在Android Studio 4.2以后的版本中默认在创建工程的时候使用MavenCentral...如果是之前的版本则需要在repositories{}闭包中添加mavenCentral(),不同的是,老版本的Android Studio是在工程的build.gradle中添加,而新版本是工程的settings.gradle...,会慢慢丰富里面的自定义View,我先画个饼再说。...二、CircularProgressBar    CircularProgressBar是圆环进度条控件。

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

    真·MySQL误操作差点删库跑路

    ,想当然的把where写成了and,然后还没有发现问题,最终执行的结果就是整张表的state的值变成了0,这张表一共有5千多万条数据,造成了一段时间的锁表,导致线上停了一个多小时,直到服务器报警我们才收到通知...PRIMARY KEY (`id`), UNIQUE KEY `sn_UNIQUE` (`sn`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 插入一些数据 接下来我执行这个语句...解决办法# 我们的解决办法是在阿里云下载故障发生前最新的备份,然后编写脚本,根据id一一对应的把state字段的数据修改过来,故障期间造成了一些数据的丢失,不过好在不多,只能根据他们的反馈然后把数据补上...最后,经过分析可以知道,开头提到的写法本身就是错误的,但是mysql并没有报语法错误,所以我运行完上面那个语句之后,结果线上出现了问题,一时之间还找不出究竟是什么引起的,隔了一段时间在同事的提醒下我才反应过来...但是有时候脑子一热就会写错,而且我是在国庆期间写的,没有做到全神贯注

    63130

    一篇文章讲透线上应用监控

    “线上服务停了,要重启一下”?久经职场做研发的程序员,视线会逐渐转移到线上应用的运行状态。设想一下,如果你在半夜两点正在酣眠美梦时,微信群里突然炸开锅:“服务停了,先重启。。。”...> /dev/null 2>&1 如果你准备采用上述方案试用时,有两个注意事项: 注意一:请注意修改对应的目录,包括 tomcat 目录、脚本目录、心跳检测url; 注意二:请注意针对shell 脚本赋上可执行权限...那接下来就聊聊如何进行日志归集呢?归集的日志如何进行存储呢?存储的日志该如何展示呢?如何实现告警呢? 如何进行日志归集?...估计坚持阅读到此的你会一脸的懵逼(笑哭),不过没关系,就当今天扩展一下知识面吧。 今天我主要提提我用过的两款:Elastic 旗下的 Filebeat、Apache 麾下的 Flume。...洋洋洒洒聊了这么多关于日志归集的,我经常用的是 ELK,后续找个时间详细写一篇关于日志归集的文章吧。 三.

    77341

    程序卡死在void HardFault_Handler的解决办法

    ,我也调用了USB_TxWrite来输出测距的信息。...在发送回调函数中也调用了USB_TxWrite来输出信息。所以串口输出有点乱。刚开始我猜测是两个USB_TxWrite输出干扰导致的程序卡死。...后来我在发送回调函数中把USB_TxWrite改成printf输出。程序还是会卡死。所以不是上述想法不成立。 ?   手动单步调试,发现代码在如下位置停了下来。程序进入未定义异常中断。...查看了我的LR寄存器,发现是一个未知的地址:0xfffffffe,这个地址明显不存在。后来猜测应该是错误访问了硬件的空间。...最终发现在OutCounter 为60的时候程序停了下来,进入了HardFault_Handler。验证我们的猜测是正确的。   下面是修改代码,利用指针和calloc动态申请数组的大小就好了。

    1.8K10

    《代码整洁之道》读书小结

    最近晚间的加班暂时暂停了,大概已经整整一个月每天焦头烂额的写着业务代码,被各种逻辑搞的整个人都不大好了,好在是写的差不多了。...每当写了很多业务代码之后,我都会停下来反思一个问题,你的代码写的干净么,有需要重构的地方么。...在我写下这部分脏代码之前,我自认为也是用了一些能够用上的设计模式,但是随着临时性的需求变更不断增加,有时候贪图省事直接在原有代码的基础上修改了事,很明显这违反了开放闭合原则。...回到正题上来,回顾《clean code》这本书,正是帮助自己在反思的同时做好知识的回顾梳理,并且能够在重构中把学到的知识学以致用。...第一次看这本书是在几年前,可以说这本书对我编写代码的风格形成了很深的影响,而初读此书时也有种醍醐灌顶的感觉,哦,原来代码还可以这么写。

    64230

    关于redux-saga中take使用方法

    带来一个自己研究好久的API使用方法. redux-saga中effect中take这个API使用方式,用的多的是call,put,select,但take这个平常还真没什么机会用上,也不清楚在哪里使用才好...先看看介绍: take   take的表现同takeEvery一样,都是监听某个action,但与takeEvery不同的是,他不是每次action触发的时候都相应,而只是在执行顺序执行到take语句时才会相应...最大区别:take只有在执行流达到时才会响应对应的action,而takeEvery则一经注册,都会响应action。...,通过 this.props.dispatch({type:'takeInputChange'}),调用此函数,但是因为遇到了take的方法,不能往下继续执行了(暂停了),如果这里的take换成了takeEvery...接下来,如果input失去焦点后,则会执行onBlur方法,此时调用this.props.dispatch({type:'takeBlur'}); 在takeInputChange里的take因为监听到了

    1.9K50

    Intellij IDEA debug断点调试技巧与总结详解篇

    要是自己的main呢,点一下就停下了,要是Java web项目,则点2下,就把服务器给停了。 4,查看所有的断点设置情况。具体详情,下面有示意图,再细细解释。...4,使用上面图上标注的12的那个按钮 5,alter + click,按住alter,然后点击想看的变量,就出现啦变量的值,这个厉害,感谢 40 楼老铁的评论。...仔细看下图,就知道,怎么在实时调试代码的时候,怎么设置某些变量的值,可以看到,我上面在输入a之后,下面就有类似你写代码时候的提示,你就可以在这地方修改变量的值啦 关于调试的时候,设置运行时的参数,如下...因为我就是刚刚开始的时候,使用的就是eclipse,后来转过来的,所以,在使用的时候,就先设置了一下,这个键盘映射。使用的还是以前在eclipse上使用的快捷键。不需要再次去记一遍新的快捷键映射。...可以看到,打断点时候,有的是对号,有的是个x,x是不可执行的代码,所以,你要是在代码类似的地方打断点的话,代码就不会停下来,因为这个断点位置有点尴尬。 如果觉得文章不错,记得分享给你的小伙伴哦。

    3.2K30

    🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)

    1写在前面 最近听说Google关停了「谷歌翻译中国版」以及「谷歌地图中国版」,官方给出的解释是: 用户使用率过低。...(咱也不敢问,咱也不敢说 ~) 虽然我在国外用的很顺畅,但一想到快回国了还是翻回去研究了一下。 2祸不单行 本来想着不用谷歌翻译,可以用别的翻译软件/网站,但万万没想到,网页翻译也给关停了。...---- 3.7 DeepL Translator https://www.deepl.com/translator 这个也是我个人常用的一个翻译网站,效果不错,有时候比谷歌翻译更好用。...复制下来。...Android:/system/etc/hosts ---- 4.3 举个栗子 因为我的电脑是mac系统,这里就以mac为例吧,其实都大同小异。

    1K30

    马斯克:我有一个大胆的想法!给红绿灯加个AI视觉「外挂」

    ---- 新智元报道   编辑:好困 【新智元导读】大半夜的,四下无人又没车,为何还要我等这么久的红灯?这两天,马斯克也在思考这个问题。...凌晨两点多,不知道是不是也在路口等着漫长的红绿灯,马斯克也深表赞同:「100%正确。」 在睡一觉起来之后,马斯克想到了一个解决方案——特斯拉人工智能视觉设备。...对此,有网友表示:「这还用不到人工智能,只需要几个摄像头和简单的代码就能避免最愚蠢的情况。」 也有网友设想:「当所有汽车都用上FSD时,是不是就可以通过扫描道路上的路况来确定谁应该开车,谁应该停车?...并补充道:「Beta 10.12版预计将于周二在美国发布,周五在加拿大发布。」 对此,作为最早的FSD Beta测试者之一的@WholeMarsBlog分享了一段特斯拉自动驾驶的视频。...在开启FSD的情况下,特斯拉不仅能够礼让行人,而且在狭窄的城市道路也能穿梭自如 特斯拉在路口处识别到了红灯不能右转的路标,果断地停了下来。

    35220

    记一次xb数据还原

    后端一直都是自己开发自己的,自己的东西瞎搞也没事,第一次去上线别人的代码。 数据库来源: 1. 腾讯云数据库,已经停了半年 2.数据库实例停止前下载了物理冷备文件->.xb文件。...(这是腾讯云数据库迁移技术人员说的,感谢技术人员) 版本怎么查看 这个版本可以从数据库实例里看到,哪怕是已经被停了的实例。 没有版本怎么办 当然你也可以挨个版本的数据库去试。...,这次整的我看着就烦,所以使用了ssh在终端使用,如何在mac终端直接操作服务器,请看这篇文章。...下载下来的文件是: mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar 3....如果使用上有问题,请联系我删除,文档在文章开头和末位都有。

    3.5K50

    避雨神器!有了这款小程序,雨天没带伞也不怕不怕啦

    小程序体验师:杨景云 今年的秋天好像是走丢了,连日的雨天使得气温一下降到冬天,真的是冷冷冷。 然而气人的是,每次总是拿伞的时候不下雨,下雨的时候没拿伞。...又或者,在路上的时候下大雨,刚冒雨跑回家雨就停了。生活总喜欢跟你开这样的小玩笑。 如果你也有过这样的经历,不妨试试中国气象局的官方合作伙伴「彩云天气」,哪怕雨天没拿伞也不会让你太尴尬。...「彩云天气」可以预测近一个半小时的下雨情况,预报几点几分下雨。 并且,它的定位能精准到街道,有了这个贴心到家的功能,即使遇到同一个城市东边大雨西边晴天的状况,也不需要害怕了。...日常生活恍恍惚惚的我,经常忘拿伞,因而时常用「彩云天气」当避雨神器…… 十来分钟雨能停的情况就找地方躲躲,超过20 分钟我就找地方买杯饮料坐着等等。...天气类小程序该有的一天内气温变化、近半个月的天气预报以及紫外线强度这些功能「彩云天气」内也一应俱全。 一天内的气温变化预报懒得慢慢看的话,直接看文字提示「阴,今天午后13点钟后转小雨,其后阴」即可。

    54520

    快速排序(java实现)

    大家好,又见面了,我是你们的朋友全栈君。 高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。...接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列: 3 1 2 5 4 6 9 7 10 8 在初始状态下,数字6在序列的第1位。...他发现了4(比基准数6要小,满足要求)之后停了下来。哨兵i也继续向右挪动的,他发现了9(比基准数6要大,满足要求)之后停了下来。...此时再次进行交换,交换之后的序列如下: 6 1 2 5 4 3 9 7 10 8 第二次交换结束,“探测”继续。哨兵j继续向左挪动,他发现了3(比基准数6要小,满足要求)之后又停了下来。...这样在每次交换的时候就不会像冒泡排序一样每次只能在相邻的数之间进行交换,交换的距离就大的多了。因此总的比较和交换次数就少了,速度自然就提高了。当然在最坏的情况下,仍可能是相邻的两个数进行了交换。

    77110

    做个机器人帮老师求婚 这个大学生帅呆了!

    这是他为教师靳颖的婚礼特意制作的。不用遥控,这个机器人就可以自动上台给新娘送上戒指。 机器人会自动递婚戒,自动退出婚礼台   刘泽华是浙江衢州人,今年21岁,在杭州长大。...他摁下开关,机器人一直向前行驶,等遇见有人伸手拦截后,机器人停了下来,载着婚戒礼盒的机械臂缓缓升起,到顶部后停了下来。待有人将戒指礼盒取下后,机械手臂自动回到原处,机器人缓缓退出婚礼台。...“虽然我赢了4秒,但如果把机器人的翻转速度调快一些,我就比不过它了。”钱鹏鹤说。  ...学生设计的机器人要准备参加大赛   在温大实验室内的比赛场地,温州大学教育学院研二学生王志临正对块头较大一些的机器人进行测试。   ...VEXIQ机器人主要由8至14岁的青少年操作,而VEX机器人主要由14岁以上青少年操作,这些机器人单个成本在3~5千元,程序都由学生设计。

    53030

    直方图的水量

    直方图的水量 每日一题微信交流群可以点击右下角:合作转载->联系我,拉你入群。...题解: 单调栈 今日题目另一个名字就是接雨水,在面试中常考题目,单调栈的经典题型,在本题当中我们需要维护一个单调递减栈,当找到比栈顶元素大的点时,弹出栈顶,看此时栈是否空,要形成一个凹下去的样子,可以这样想象...那么每次新来的点就是右边柱子,栈顶元素就是中间凹下去的点,左边柱子是距离栈顶的第一个元素,也就是栈顶下来就是这个左边元素。因此要计算面积,我们需要知道这三个点!...接下来,看代码实现部分,假期到了,每日一题我这边暂停了,假期来后,我们再继续刷~ class Solution { public: int trap(vector& height) {

    26330

    某网站逆向分析(主攻算法)

    如本篇文章侵犯了贵公司的隐私,请联系我立刻删除! 如因滥用解密技术而产生的风险与本人无关! 三个月了,没写一篇文章!! 今天有四个参数可以分析! 进入正题。...看代码,,是往headers上面添加的, 那不用想,肯定是这里呀。 下上我们可爱的断点。 随着程序刷新,点击,,,断点就停了下来。...这里先搞Token 也就是 fk_to 然后看了一下 发现生成过程已经走完了, 这里是取值的地方。 那我们先把整个js代码拷贝下来, 我们是整算法。...在头部加上。 ``` window = global; navigator = {}; document = {}; ``` 然后, 此处就不用管了。 因为我们的高光时刻就要来了。...我就是太阳 我们查看堆栈。 发现。这些操作全都是赋值操作。 而且,看这些名字和刚开始的报错信息。, 这不就是环境校验吗??? 我的文章已经发布到穿甲兵。。 看完整版的请到穿甲兵观看,谢谢哦!!!!

    53610

    立即停止训练比 GPT-4 更强的模型,至少六个月!马斯克、图灵奖得主等数千 AI 专家紧急呼吁

    这种暂停应该是公开的和可验证的,并且包括所有关键参与者。如果不能迅速实施这种暂停,政府应介入并暂停”,公开信写道。...一线设计师、开发者无奈怒吼:我的工作被 AIGC 工具取代了 事实上,自去年发布以来,由微软主力支持的 OpenAI 的 ChatGPT 已经促使很多用户、公司用上了这些 AI 系统与模型,也激发了业界竞争对手迅速入局...我现在能够在 2-3 天内创造、装配和制作一个从 MJ 吐出来的图像。以前,我们花了好几周的时间做 3D。区别在于:我关心,他不关心。...人工智能实验室和独立专家应利用这次暂停期,共同制定和实施一套先进的人工智能设计和开发的共享安全协议,并由独立的外部专家进行严格的审计和监督。这些协议应该确保遵守它们的系统是安全的,无可置疑的。...社会已经暂停了其他可能对社会造成灾难性影响的技术。我们在这里也可以这样做。让我们享受一个漫长的人工智能夏季,而不是在毫无准备的情况下匆忙进入秋天。

    31640

    快速排序Java实现_快速排序实现java

    大家好,又见面了,我是你们的朋友全栈君。 高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。...接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列: 3 1 2 5 4 6 9 7 10 8 在初始状态下,数字6在序列的第1位。...他发现了4(比基准数6要小,满足要求)之后停了下来。哨兵i也继续向右挪动的,他发现了9(比基准数6要大,满足要求)之后停了下来。...此时再次进行交换,交换之后的序列如下: 6 1 2 5 4 3 9 7 10 8 第二次交换结束,“探测”继续。哨兵j继续向左挪动,他发现了3(比基准数6要小,满足要求)之后又停了下来。...这样在每次交换的时候就不会像冒泡排序一样每次只能在相邻的数之间进行交换,交换的距离就大的多了。因此总的比较和交换次数就少了,速度自然就提高了。当然在最坏的情况下,仍可能是相邻的两个数进行了交换。

    1.4K10

    浅析ThreadList的runcheckpoint方法

    打印指定thread线程的栈帧情况。 根据上面两个函数相信大家可以猜到可以做哪些骚操作了。接下来继续解释 函数实现 runcheckpoint函数实现: 1。...就是说这个线程阻塞了或者已经暂停了他都没有运行那么怎么进行检查标志位呢这个也就是上面说过的dump的第二种实现方式,不需要那个指定的线程运行自己打印自己线程的情况,而是通过调用者线程(你这个线程不运行,...调用者线程运行我用调用者线程去打印)进行帮助那些没有运行的线程打印信息,只需要指定对应的thread。...上面第一步设置ksuspendrequest标志位已经让不在运行的线程都已经停止运行了(即使暂停的线程恢复运行也会在检查标志位的时候进行把自己暂停)然后我把一个执行dump函数的run函数封装成closure...因为要保存线程不能发生任何内存上的变化所以只能通过将所有线程都suspend的方式实现,但是线程暂停了怎么能够打印自己的信息呢?

    25210
    领券