用Flutter做桌上弹球?聊聊绘图(Canvas&CustomPaint)API

本文是Flutter中Canvas和CustomPaint API的使用实例。 首先看一下我们要实现的效果: 结合动图演示,列出最终目标如下: 在程序运行后,显示一个小球; 每次程序启动后,小球的样式均发生随机性变化,体现在大小、颜色和位置三点; 小球运行的规律参考桌球或三维弹球游戏; 单击屏幕,小 ...

萧文翰 @ 2020/07/30

一切皆组件的Flutter,安能辨我是雄雌

从一开始接触Flutter,相信读者都会铭记一句话,那就是——一切皆组件。今天我们就来体会一下这句话的神奇魔力,我们先从实际的产品需求说起。 我们先来看一个简化的运行图: 我们要实现如上图所示的日期选择器,App是iOS风格。 Flutter SDK自身有类似上图的日期选择器,但是Material ...

萧文翰 @ 2020/07/27

大前端时代搞定PC/Mac端开发,我有绝招

如果你是一位前端开发工程师,对“跨平台”一词应该不会感到陌生。像常见的前端框架:比如React、Vue、Angular,它们可以做网页端,也可以做移动端,但很少能做到跨PC、Mac端,也就是我们熟知的Windows、Linux以及macOS上的应用程序。即使有,受限于JS的性能瓶颈,当有大量的科学计 ...

萧文翰 @ 2020/07/11

七夕节要到了,你的钱袋子还好吗?

眼看就要到七夕节了,各位的七夕节礼物都准备好了吗? 什么?你还没有女朋友?何不借此机会买点什么东西表白一下? 但是,看看钱袋子,余额宝,银行卡…… 是不是瞬间觉得:还是单身好? 但是! 你总归不是想这样一直穷下去、单身下去吧…… 今天就教你一招——能让你有固定工资以外的收入,而且是躺着挣钱的方法,不 ...

萧文翰 @ 2019/08/03

如何开发优质的 Flutter App:Flutter App 软件调试指南

本次博主带来的是《深入 Flutter 系列课程》第三讲,主要聊聊如何进行 Flutter App 代码的调试。本次课程将在GitChat平台上免费进行,通过本场 Chat,您将获得以下技能: 本场 Chat 依然会结合具体的代码展开讨论。 链接:https://gitbook.cn/gitchat ...

萧文翰 @ 2019/07/25

身为程序员,你焦虑吗?

2019年已经过了大半,如果要用一个词来形容今年的互联网就业形势,那会是什么呢? 没错,是“寒冬”! 去知乎上面搜索“互联网 寒冬”,看看这些搜索结果吧: 再来搜搜“互联网 裁员”: 从2018年开始,很多互联网公司纷纷传出裁员的消息,其中不乏一些大公司,比如Oracle、京东、滴滴等等。还有我任职 ...

萧文翰 @ 2019/07/25

如何开发优质的 Flutter App:应用架构的搭建

各位读者朋友们,好久不见了! 最近博主一直在忙于工作以及写《Flutter入门与应用实战》的书,所以没有时间打理博客。今天来给大家分享一个博主在GitChat上发起的一场Chat。 下面是本场Chat的简介: Flutter 是 Google 发布的 UI 框架,可以快速在 iOS 和 Androi ...

萧文翰 @ 2019/06/28

Android Jetpack之AppCompat(一)

今天我们来聊一聊有关AppCompat,作为Android Jetpack系列文章的开篇。说到Android Jetpack,我们先看一下这张图: 从图中我们可以看到,整个Android Jetpack分为了四大部分,而我们今天要讲述的就是Foundation中的AppCompat小节,官方将该部分 ...

萧文翰 @ 2019/03/12

抓出卡顿元凶,从分析掉帧开始

这次我们依旧来谈谈有关性能优化的话题,这次我们会用到Google给我们提供的分析工具——Systrace。如果你还不了解这个工具,最好先了解一下。Google 官方文档: https://developer.android.com/studio/command line/systrace 我们还会用 ...

萧文翰 @ 2019/02/25

粮草先行——Android折叠屏开发技术点(二)

继该系列的第一篇和番外篇之后,今天我们来聊一聊多窗口开发的注意事项。实际上,与其说“多窗口开发”,不如说让我们的APP 适应多窗口模式 。 可能有朋友会问,为什么要提到多窗口模式呢? 这是因为: 1. 折叠屏在展开后的屏幕会变大,而变大带来的变化就是多窗口运行; 2. 多窗口模式在很早之前就已经被G ...

萧文翰 @ 2019/02/20

粮草先行——Android折叠屏开发技术点番外篇之运行时变更处理原则

上一篇文章中,我们有提到Activity在屏幕尺寸发生变更时的处理方式,总共有两种: 1. 重启APP以适应屏幕改变; 2. 手动处理数据,避免APP重启。 同样,这两种方式也同时适用于改变屏幕方向、更改系统语言、甚至输入法等等。 因此,本文也同样 适用于改变屏幕方向等情况的处理。 或许你会有疑问: ...

萧文翰 @ 2019/02/14

粮草先行——Android折叠屏开发技术点(一)

最近有关折叠屏产品的新闻层出不穷,各家手机厂商也分别慢慢地亮出了自家的产品。然而市场上的一些APP仍然没有很好地适配这样的设备,显示不正常和应用重启的状况时有发生。因此,我会用接下来的几篇文章来点出有关折叠屏开发中的一些需要注意的地方。 今天我们先来说一下 生命周期 ,这是广大开发者特别需要注意的一 ...

萧文翰 @ 2019/01/30

全新开始,全心出发

感谢我的父亲、母亲、妻子、同事和朋友们,是你们让我能够有精力全情投入到工作和学习中,感谢你们为我做过的一切事! 传送门 ==> CSDN开博寄语 依稀记得不到5年前在CSDN写下上面这第一篇文字时的场景和感受,那个时候的我在软件开发领域还是一个懵懵懂懂的新人。其实在浩瀚的知识和未来面前,我们始终都是 ...

萧文翰 @ 2019/01/30

Activity与DialogFragment交互的方法

今天我们来讨论一下如何在Activity与DialogFragment交互的方法,这里包括了DialogFragment的启动以及Activity方法的调用。 DialogFragment与Dialog相比类似,是官方现在更建议使用的Dialog。 DialogFragment的定义 新建一个Dia ...

萧文翰 @ 2019/01/29

提升应用崩溃时的用户体验——去掉烦人的“很抱歉”提示框

相信很多在用或者用过Android系统的的手机的朋友都有过这样的经历:自己玩着玩着某个程序,突然屏幕一黑,然后出现一个对话框,提示很抱歉,应用程序已经停止工作。这意味着程序已然崩溃了,用户唯一要做的就是接下来重新运行这个程序,或者去干些别的。我个人推测,前者占大多数。 当然,一些比较健壮的程序是一般 ...

萧文翰 @ 2019/01/29

取之有道——巧用Root权限 启动其他APP中的Activity

这次博主来分享一个很巧妙的办法来启动其他APP中Activity的方法。 首先说一下这样做的目的:最近博主在攻克一个技术难点,就是搞定某些三方系统中,对于应用权限的限制。为此给出用户指导,引导用户启动系统中的权限设置来设置信任。到此,问题就来了:我们不知道权限设定的包名,也不知道权限设置的Activ ...

萧文翰 @ 2019/01/28

调用系统相机导致照片旋转问题的修复

如题,相信很多开发者在调用系统照相机接收拍好的照片时,发现照片被无故旋转了90度。这一问题反映在大部分的三星手机上,当然其他的机器还没试完全,总之是有问题。 于是乎想到如下的解决办法: 1. 识别机型,获取手机型号,然后判断是否需要旋转; 2. 通过获取照片宽度和高度判断是否需要旋转; 3. 自己动 ...

萧文翰 @ 2019/01/28

巧用Handler获取View控件信息

众所周知,在Android实际开发中,对于某些复杂多变的情况,控件的位置摆放、大小控制并非是xml类型的layout文件完全可以搞定的。此时,我们通常会使用Java代码来通过动态计算,将指定的控件摆放在相应的位置,并限定其大小。同样地,也需要获取某个控件的大小。 对于获取控件宽、高的方法,大家可以自 ...

萧文翰 @ 2019/01/28