注册
环信即时通讯云

环信即时通讯云

单聊、群聊、聊天室...
环信开发文档

环信开发文档

环信FAQ

环信FAQ

集成常见问题及答案
RTE开发者社区

RTE开发者社区

汇聚音视频领域技术干货,分享行业资讯
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

收集了海量宝藏开发资源
iOS Library

iOS Library

不需要辛辛苦苦的去找轮子, 这里都有
Android Library

Android Library

不需要辛辛苦苦的去找轮子, 这里都有
0
评论

内存优化之掌握 APP 运行时的内存模型 内存优化

王二蛋和他的张大花 发表了文章 • 860 次浏览 • 2022-12-22 10:58 • 来自相关话题

为了让大家深入掌握 App 运行时的内存模型,这一节的内容按照由外到内、逐步深入的原则,分为了 3 个部分:内存描述指标内存数据获取内存模型详解话不多说,让我们马上开始这一章学习吧!内存描述指标在进行内存优化之前,我们必须要先熟悉常用的内存描述指标。内存描述指... ...查看全部
0
评论

算法| Java的int类型最大值为什么是21亿多? int

王二蛋和他的张大花 发表了文章 • 976 次浏览 • 2022-12-22 10:54 • 来自相关话题

开篇 本文主要介绍在Java中,为什么int类型的最大值为2147483647。 理论值 我们都知道在Java中,int 的长度为32位。 理论上,用二进制表示,32位每一位都是1的话,那么这个数是多少呢? 我们来计算一下,第0位可以用20^00表示,第1位... ...查看全部
0
评论

让人恶心的多线程代码,性能怎么优化! mipmap Drawable

王二蛋和他的张大花 发表了文章 • 393 次浏览 • 2022-12-21 11:15 • 来自相关话题

Java 中最烦人的,就是多线程,一不小心,代码写的比单线程还慢,这就让人非常尴尬。 通常情况下,我们会使用 ThreadLocal 实现线程封闭,比如避免 SimpleDateFormat 在并发环境下所引起的一些不一致情况。其实还有一种解决方式。通过对pa... ...查看全部
0
评论

App实现JSBridge的最佳方案 JSBridge

王二蛋和他的张大花 发表了文章 • 568 次浏览 • 2022-12-21 11:12 • 来自相关话题

前沿 写这篇文章的主要目的是对 App 的 JSBridge 做一个全面的介绍,同时根据不同的使用场景总结出一份 App 实现 JSBridge 的最佳方案。对于没有接触过 App 的同学能够对 JSBridge 有个大致的概念,对于做过 App 的 JSBr... ...查看全部
0
评论

Glide 原理探索 Glide

王二蛋和他的张大花 发表了文章 • 388 次浏览 • 2022-12-21 11:06 • 来自相关话题

implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' ... ...查看全部
0
评论

Android的线程和线程池 线程池

王二蛋和他的张大花 发表了文章 • 365 次浏览 • 2022-12-20 10:53 • 来自相关话题

从用途上来说Android的线程主要分为主线程和子线程两类,主线程主要处理和界面相关的工作,子线程主要处理耗时操作。除Thread之外,Android中还有其他扮演线程的角色如AsyncTask、IntentService、HandleThread,其中Asy... ...查看全部
0
评论

Android 位图(图片)加载引入的内存溢出问题分析 内存溢出 Android

王二蛋和他的张大花 发表了文章 • 397 次浏览 • 2022-12-20 10:49 • 来自相关话题

1.一些定义 在分析具体问题之前,我们先了解一些基本概念,这样可以帮助理解后面的原理部分。当然了,大家对于这部分定义已经了然于胸的,就可以跳过了。 什么是内存泄露? 我们知道Java GC管理的主要区域是堆,Java中几乎所有的实例对象数据实际是存储在堆上的(... ...查看全部
0
评论

Handler就是一个简化的邮递系统么? Android handler

王二蛋和他的张大花 发表了文章 • 373 次浏览 • 2022-12-20 10:46 • 来自相关话题

前置补充 关于本文的初衷不是讲很多细节,主要像聚焦在Handler的设计理念上,主要想讲述计算机系统中的很多事情在现实中其实有现成的例子可以参考理解,当然现实生活比程序肯定更复杂。 知行合一,想完全理解一个事物,肯定不能光靠看文章,还是要在实际的工作中... ...查看全部
0
评论

你真的了解 RSA 加密算法吗? 加密算法 RSA

王二蛋和他的张大花 发表了文章 • 481 次浏览 • 2022-12-19 11:10 • 来自相关话题

记得那是我毕业🎓后的第一个秋天,申请了域名,搭建了论坛。可惜好景不长,没多久进入论坛后就出现各种乱七八糟的广告,而这些广告压根都不是我加的。 这是怎么回事?后来我才知道,原来我的论坛没有加 HTTPS 也就是没有 SSL 证书。那这和数学中的素数... ...查看全部
0
评论

Flutter 组件分析之AspectRatio Flutter AspectRatio

王二蛋和他的张大花 发表了文章 • 449 次浏览 • 2022-12-19 10:59 • 来自相关话题

引言 AspectRatio 可以根据具体的长宽比约束 child 的布局范围, 从而影响 child 的大小. 通常在视频、图像中会经常使用, 今天我们来分析一下它的实现原理. AspectRatio AspectRatio 的参数只有 key、aspect... ...查看全部
0
评论

Flutter 小技巧之快速理解手势逻辑 手势逻辑 Flutter

王二蛋和他的张大花 发表了文章 • 412 次浏览 • 2022-12-19 10:58 • 来自相关话题

GestureDetector 不管你用 InkWell 、InkResponse 、TextButton 还是 ElevatedButton , 它们针对手势的处理逻辑都是来自于 GestureDetector ,也就是理解 Flutter 的手势处理... ...查看全部
0
评论

细节决定成败:探究Mybatis中javaType和ofType的区别 ofType javaType mybatis

王二蛋和他的张大花 发表了文章 • 385 次浏览 • 2022-12-16 10:51 • 来自相关话题

一. 背景描述 今天,壹哥给学生讲解了Mybatis框架,学习了基础的ORM框架操作及多对一的查询。在练习的时候,小张同学突然举手求助,说在做预习作业使用一对多查询时,遇到了ReflectionException 异常 。 二. 情景再现 1. 实体类 为了给... ...查看全部
0
评论

我尝试以最简单的方式帮你梳理 Lifecycle lifecycle

王二蛋和他的张大花 发表了文章 • 339 次浏览 • 2022-12-16 10:48 • 来自相关话题

前言 我们都知道 Activity 与 Fragment 都是有生命周期的,例如:onCreate()、onStop() 这些回调方法就代表着其生命周期状态。我们开发者所做的一些操作都应该合理的控制在生命周期内... ...查看全部
0
评论

Compose 为什么可以跨平台? 跨平台 compose

王二蛋和他的张大花 发表了文章 • 451 次浏览 • 2022-12-16 10:46 • 来自相关话题

前言 Compose 不止能用于 Android 应用开发,借助其分层的架构设计以及 Kotlin 的跨平台优势,也是一个极具潜力的 Kotlin 跨平台框架。本文让我们从 Compose Runtime 的视角出发,看看 Compose 实现跨平台开发的基本... ...查看全部
0
评论

Suspend函数与回调的互相转换 协程 suspend

王二蛋和他的张大花 发表了文章 • 378 次浏览 • 2022-12-15 15:12 • 来自相关话题

前言 我们再来一期关于kotlin协程的故事,我们都知道在Coroutine没有出来之前,我们对于异步结果的处理都是采用回调的方式进行,一方面回调层次过多的话,容易导致“回调地狱”,另一方法也比较难以维护。当然,我们并不是否定了回调本身,回调本身同时也是具备很... ...查看全部
0
评论

Android 线上卡顿监控 卡顿 Android

王二蛋和他的张大花 发表了文章 • 572 次浏览 • 2022-12-15 15:01 • 来自相关话题

1. 卡顿与ANR的关系 卡顿是UI没有及时的按照用户的预期进行反馈,没有及时地渲染出来,从而看起来不连续、不一致。产生卡顿的原因太多了,很难一一列举,但ANR是Google人为规定的概念,产生ANR的原因最多只有4个。分别是: Service Timeou... ...查看全部
0
评论

日常思考,目前Kotlin协程能完全取代Rxjava吗 协程 rxjava kotlin

王二蛋和他的张大花 发表了文章 • 415 次浏览 • 2022-12-15 14:53 • 来自相关话题

前言 自从jetbrains公司提出Kotlin协程用来解决异步线程问题,并且衍生出来了Flow作为响应式框架,引来了大量Android开发者的青睐;而目前比较稳定的响应式库当属Rxjava,这样以来目的就很明显了,旨在用Kotlin协程来逐步替代掉Rxjav... ...查看全部
0
评论

这10张图拿去,别再说学不会RecyclerView的缓存复用机制了! RecyclerView

王二蛋和他的张大花 发表了文章 • 361 次浏览 • 2022-12-09 10:45 • 来自相关话题

ViewPager2是在RecyclerView的基础上构建而成的,意味着其可以复用RecyclerView对象的绝大部分特性,比如缓存复用机制等。 作为ViewPager2系列的第一篇,本篇的主要目的是快速普及必要的前置知识,而内容的核心,正是前面所提到的R... ...查看全部
0
评论

Gradle 依赖切换源码的实践 gradle

王二蛋和他的张大花 发表了文章 • 440 次浏览 • 2022-12-09 10:43 • 来自相关话题

最近,因为开发的时候经改动依赖的库,所以,我想对 Gradle 脚本做一个调整,用来动态地将依赖替换为源码。这里以 android-mvvm-and-architecture 这个工程为例。该工程以依赖的形式引用了我的另一个工程 AndroidUtils。在之... ...查看全部
0
评论

BasicLibrary架构设计旅程(一)—Android必备技能 BasicLibrary

王二蛋和他的张大花 发表了文章 • 357 次浏览 • 2022-12-09 10:40 • 来自相关话题

前言 2022年对大部分人来说真的是不容易的一年,有不少粉丝私信问我,今年行情不好,但是现在公司又不好怎么办,我的建议就是学习。无论过去,现在,未来,投资自己一定是不会错的,只有当你足够强大,哪怕生活一地鸡毛,你也能垫起脚尖独揽星空。 对于Android来说... ...查看全部
0
评论

为 Kotlin 的函数添加作用域限制(以 Compose 为例) kotlin compose

王二蛋和他的张大花 发表了文章 • 342 次浏览 • 2022-12-08 10:48 • 来自相关话题

前言 不知道各位是否已经开始了解 Jetpack Compose? 如果已经开始了解并且上手写过。那么,不知道你们有没有发现,在 Compose 中对于作用域(Scopes)的应用特别多。比如, weight 修饰符只能用在 RowScope 或者 Colum... ...查看全部
0
评论

检测Android应用使用敏感信息(mac地址、IMEI等)的方法 敏感信息 Android

王二蛋和他的张大花 发表了文章 • 929 次浏览 • 2022-12-08 10:42 • 来自相关话题

今天在提交app时,遇到授权前隐私不过的问题,所有的初始化都后置到授权后了,还是被报有获取mac地址和android_id的行为,这很是奇怪,自己也是无处下手,毕竟log里面是没有的,应用商店也没有提供堆栈。 经过一番查找,找到一套自测的工具,这里自己也记录并... ...查看全部
0
评论

Android 一种点赞动画的实现 点赞动画 Android

王二蛋和他的张大花 发表了文章 • 456 次浏览 • 2022-12-08 10:39 • 来自相关话题

最近有个需求,需要仿照公司的H5实现一个游戏助手,其中一个点赞的按钮有动画效果,如下图: 分析一下这个动画,点击按钮后,拇指首先有个缩放的效果,然后有5个拇指朝不同的方向移动,其中部分有放大的效果。 点击后的缩放效果 本文通过ScaleAnimation 实... ...查看全部
0
评论

反思:Google 为何把 SurfaceView 设计的这么难用? SurfaceView

王二蛋和他的张大花 发表了文章 • 533 次浏览 • 2022-12-07 14:24 • 来自相关话题

启程 如果你有过 SurfaceView 的使用经历,那么你一定和我一样,曾经被它所引发出 层出不穷的异状 折磨的 怀疑人生—— 毕竟,作为一个有理想的开发者,在深入了解 SurfaceView 之前,你很难想通这样一个问题: 为什么 Google 把 Su... ...查看全部
0
评论

超有用的Android开发技巧:拦截界面View创建 拦截界面 Android

王二蛋和他的张大花 发表了文章 • 527 次浏览 • 2022-12-07 14:20 • 来自相关话题

LayoutInflater.Factory2是个啥? Activity内界面的创建是由LayoutInflater负责,LayoutInflater最终会交给内部的一个类型为LayoutInflater.Factory2的factory2成员变量进行创建。 ... ...查看全部
0
评论

synchronized实现原理 synchronized

王二蛋和他的张大花 发表了文章 • 375 次浏览 • 2022-12-07 14:09 • 来自相关话题

synchronized作为java语言中的并发关键词,其在代码中出现的频率相当高频,大多数开发者在涉及到并发场景时,一般都会下意识得选取synchronized。 synchronized在代码中主要有三类用法,根据其用法不同,所获取的锁对象也不同,如下所示... ...查看全部
0
评论

花里胡哨的文字特效,你学会了吗? 文字特效

王二蛋和他的张大花 发表了文章 • 385 次浏览 • 2022-12-06 15:19 • 来自相关话题

前言 我们的 App 大部分时候的文字都是一种颜色,实际上,文字的颜色也可以多姿多彩。我们今天就来介绍一个能够轻松实现文字渐变色的组件 —— ShaderMask。ShaderMask 能够构建一个着色器(shader),然后覆盖(mask)到它的子组件上,从... ...查看全部
0
评论

从阅读仿真页看贝塞尔曲线 贝塞尔曲线

王二蛋和他的张大花 发表了文章 • 431 次浏览 • 2022-12-06 15:13 • 来自相关话题

前言 一直觉得阅读器里面的仿真页很有意思,最近在看阅读器相关代码的时候发现仿真页是基于贝塞尔曲线去实现的,所以就有了此篇文章。 仿真页一般有两种实现方式: 将内容绘制在Bitmap上,基于Canvas去处理仿真页 OpenGl es 本篇文章我会向大家介绍... ...查看全部
0
评论

什么?还在傻傻地手写Parcelable实现? Parcelable

王二蛋和他的张大花 发表了文章 • 419 次浏览 • 2022-12-06 15:11 • 来自相关话题

什么?还在傻傻地手写Parcelable实现? 缘起 序列化已经是Android司空见惯的东西了,场景太多了。就拿Intent来说吧,extra能放的数据,除了基本类型外,就是序列化的数据了,有两种: Serializable:Java世界自带的序列化工具,... ...查看全部
0
评论

聊一聊Kotlin协程"低级"api api kotlin

王二蛋和他的张大花 发表了文章 • 306 次浏览 • 2022-12-06 15:08 • 来自相关话题

聊一聊kotlin协程“低级”api Kotlin协程已经出来很久了,相信大家都有不同程度的用上了,由于最近处理的需求有遇到协程相关,因此今天来聊一Kotlin协程的“低级”api,首先低级api并不是它真的很“低级”,而是kotlin协程库中的基础api,我... ...查看全部
0
评论

Flutter — 仅用三个步骤就能帮你把文本变得炫酷! Flutter 文本炫酷

王二蛋和他的张大花 发表了文章 • 472 次浏览 • 2022-12-05 14:51 • 来自相关话题

前言:前天,一位不愿意透露姓名的朋友找到我,问我怎么样才能把文本变得炫酷一些,他想用图片嵌入到自己的名字里去,用来当作朋友圈的背景。我直接回了一句,你PS下不就好了。他回我一句:想要这样效果的人比较多,全部都PS的话怕不是电脑要干冒烟...能不能用代码自动生成... ...查看全部
0
评论

Android 控件自动贴边实现 Android 自动贴边

王二蛋和他的张大花 发表了文章 • 322 次浏览 • 2022-12-05 14:47 • 来自相关话题

最近接到个需求,需要在用户与App交互时,把SDK中之前实现过的悬浮控件贴边隐藏,结束交互后延迟一段时间再自动显示。本篇文章介绍一下实现的思路。 判断交互 用户与App交互、结束交互可以通过监听触摸事件来实现。建议使用的Activity的dispatchTou... ...查看全部
0
评论

终于理解~Android 模块化里的资源冲突 资源冲突 Android

王二蛋和他的张大花 发表了文章 • 608 次浏览 • 2022-12-05 14:46 • 来自相关话题

⚽ 前言 作为 Android 开发者,我们常常需要去管理非常多不同的资源文件,编译时这些资源文件会被统一地收集和整合到同一个包下面。根据官方的《Configure your build》文档介绍的构建过程可以总结这个过程: 编译器会将源码文件转换成包含了... ...查看全部
0
评论

Flutter App开发黑白化UI实现方案ColorFiltered Flutter

王二蛋和他的张大花 发表了文章 • 453 次浏览 • 2022-12-02 14:47 • 来自相关话题

一、相信大家对App黑白化并不陌生,经常可以看到大厂的App在一定的时候会呈现黑白样式如下: 这种效果在原生开发上大家肯定或多或少都了解过,原理都是在根布局绘制的时候将画笔饱和度设置成0;具体实现大家可以搜一搜这里就不贴了。 二、下面就来说说在Flutte... ...查看全部
0
评论

Kotlin协程之一文看懂Channel管道 Channel

王二蛋和他的张大花 发表了文章 • 460 次浏览 • 2022-12-02 14:40 • 来自相关话题

概述 Channel 类似于 Java 的 BlockingQueue 阻塞队列,不同之处在于 Channel 提供了挂起的 send() 和 receive() 方法。另外,通道 Channel 可以被关闭表明不再有数据会进入 Channel, 而接收端可以... ...查看全部
0
评论

如何启动协程 kotlin 协程

王二蛋和他的张大花 发表了文章 • 402 次浏览 • 2022-12-02 14:39 • 来自相关话题

1.launch启动协程 fun main() = runBlocking { launch { delay(1000L) println("World!") } println("Hello") ... ...查看全部
0
评论

Android-多套环境的维护 多套环境

王二蛋和他的张大花 发表了文章 • 388 次浏览 • 2022-12-02 14:36 • 来自相关话题

记录一下项目中多套环境维护的一种思路。 一、多套环境要注意的问题 1、方便使用灵活配置 2、配置安全不会被覆写 3、扩展灵活 4、安装包可动态切换环境,方便测试人员使用 二、解决思路 1、Android中的Properties文件是只读的,打包后不可修改,所以... ...查看全部
0
评论

线程池封装及拒绝策略 线程池

王二蛋和他的张大花 发表了文章 • 316 次浏览 • 2022-12-01 15:37 • 来自相关话题

前文提到线程的使用以及线程间通信方式,通常情况下我们通过new Thread或者new Runnable创建线程,这种情况下,需要开发者手动管理线程的创建和回收,线程对象没有复用,大量的线程对象创建与销毁会引起频繁GC,那么事否有机制自动进行线程的创建,管理和... ...查看全部
0
评论

简单封装一个易拓展的Dialog dialog

王二蛋和他的张大花 发表了文章 • 394 次浏览 • 2022-12-01 15:36 • 来自相关话题

Dialog,每个项目中多多少少都会用到,肯定也会有自己的一套封装逻辑,无论如何封装,都是奔着简单复用的思想,有的是深层次的封装,也就是把相关的UI效果直接封装好,暴露可以修改的属性和方法,让调用者根据实际业务,调用修改即可,当然也有简单的封装,只封装基本的功... ...查看全部
0
评论

Flutter 玩转彩虹, 吃定彩虹 Flutter

王二蛋和他的张大花 发表了文章 • 374 次浏览 • 2022-12-01 15:34 • 来自相关话题

闲暇时,又听到了这首歌. 抑郁质性格的人难免会惆怅,美好的东西转瞬即逝.不过谁叫咱们是程序员呢~ 这就安排上.整上一个想看就看的彩虹! 玩转彩虹 彩虹,是气象中的一种光学现象,当太阳光照射到半空中的水滴,光线被折射及反射,在天空上形成拱形的七彩光谱,由外圈至... ...查看全部
0
评论

这一篇让你搞定 Flutter 的数据表格 数据表格 Flutter

王二蛋和他的张大花 发表了文章 • 910 次浏览 • 2022-11-23 16:37 • 来自相关话题

前言 目前,越来越多的管理层(所谓的领导)都希望在手机端查看各种各样的数据报表,以达到随时随地关注经营业绩(监督干活)的目的。这就要求移动端能够提供数据表来满足这类诉求,本篇我们就来介绍 Flutter 的数据表格的使用。通过本篇你会了解到: Flutter... ...查看全部
0
评论

温故知新--MV*系列架构模型 架构

王二蛋和他的张大花 发表了文章 • 380 次浏览 • 2022-11-23 16:31 • 来自相关话题

下文仅代表个人理解,可能会有偏差或错误,欢迎评论或私信讨论。 MVC 从软件架构模型角度 MVC 是比较“古老”的架构模型,后面的 MV* 都是基于它进行拓展。MVC 出现的意义是为了提高程序的可维护性与拓展性。在 View 层与 Model 层中添加了 C... ...查看全部
0
评论

Android 官方项目是怎么做模块化的?快来学习下 模块化

王二蛋和他的张大花 发表了文章 • 414 次浏览 • 2022-11-23 16:29 • 来自相关话题

本篇文章将会以 Now in Android 项目为例,讲解 Android 官方 App 模块化相关知识及策略。 概述 模块化是将单一模块代码结构拆分为高内聚内耦合的多模块的一种编码实践。 模块化的好处 模块化有以下好处: 可扩展性:在高耦合的单一代码库中... ...查看全部
0
评论

货拉拉客户端通用日志组件 - Glog 日志组件

王二蛋和他的张大花 发表了文章 • 680 次浏览 • 2022-11-23 16:27 • 来自相关话题

Glog 是货拉拉移动端监控系统中的日志存储组件,Glog 意即 General log - 通用日志。为了满足我们对日志格式的多种需求,我们在存储方式、归档方式上做了一些探索和实践,使得 Glog 的通用性和性能优于常见的日志方案。Glog 已经在货拉拉全线... ...查看全部
0
评论

【杰哥带你玩转Android自动化】AccessibilityService基础 AccessibilityService

王二蛋和他的张大花 发表了文章 • 1542 次浏览 • 2022-11-23 16:23 • 来自相关话题

0x1、引言 Hi,我是杰哥,忙了好一阵子,终于有点时间来继续填坑啦~ 间隔太久没更新,读者估计都忘记这个专栏了,所以在开始本节前,再重复下这段话: 所有Android自动化框架和工具中 操作Android设备的功能实现 都基于 adb 和 无障碍服务Ac... ...查看全部
0
评论

Kotlin Flow啊,你将流向何方? kotlin flow

王二蛋和他的张大花 发表了文章 • 415 次浏览 • 2022-11-22 15:14 • 来自相关话题

前言 前边一系列的协程文章铺垫了很久,终于要分析Flow了。如果说协程是Kotlin的精华,那么Flow就是协程的精髓。 通过本篇文章,你将了解到: 什么是流? 为什么引进Flow? Fow常见的操作 为什么说Flow是冷流? 1. 什么是流 自... ...查看全部
1
评论

Flutter富文本性能优化 — 渲染 富文本性能优化

王二蛋和他的张大花 发表了文章 • 976 次浏览 • 2022-11-22 15:09 • 来自相关话题

文本的排版与绘制 在经过之前文章的学习后,我们可以知道RichText主要是通过构建InlineSpan树来实现图文混排的功能。对InlineSpan树的结构我们也已经很清晰,在树中,除了TextSpan,还存在着PlaceholderSpan类型的节点,而W... ...查看全部
0
评论

【造轮子】自定义一个随意拖拽可吸边的悬浮View 悬浮View

王二蛋和他的张大花 发表了文章 • 387 次浏览 • 2022-11-22 14:50 • 来自相关话题

1、效果 2、前言 在开发中,随意拖拽可吸边的悬浮View还是比较常见的,这种功能网上也有各种各样的轮子,其实写起来并不复杂,看完本文,你也可以手写一个,而且不到400行代码就能实现一个通用的随意拖拽可吸边的悬浮View组件。 3、功能拆解 4、功能实现 ... ...查看全部
0
评论

Kotlin常用的by lazy你真的了解吗 kotlin

王二蛋和他的张大花 发表了文章 • 503 次浏览 • 2022-11-22 14:47 • 来自相关话题

前言 在使用Kotlin语言进行开发时,我相信很多开发者都信手拈来地使用by或者by lazy来简化你的属性初始化,但是by lazy涉及的知识点真的了解吗 假如让你实现这个功能,你会如何设计。 正文 话不多说,我们从简单的属性委托by来说起。 委托属性 什... ...查看全部
0
评论

优雅的数据统计图表 数据统计

王二蛋和他的张大花 发表了文章 • 386 次浏览 • 2022-11-22 14:29 • 来自相关话题

前言 一直想花时间复刻学习一下Apple产品的原生UI和动画,超级丝滑。 今天,目标是健康的心率数据统计图表。 健康及Android实现效果预览 Apple健康的图表交互效果: 丝滑,有数据条滑动、滑动查看数据标注两种模式;数据标注位置自适应;两端超... ...查看全部