首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Android 移动开发
萧文翰
创建于2023-02-28
订阅专栏
我的Android移动开发经验谈
暂无订阅
共29篇文章
创建于2023-02-28
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【聊技术】在Android中实现自适应文本大小显示
本周的聊技术话题和大家说说如何在Android中实现自适应文本大小显示。 想象一下,在布局中,通常显示文本的区域大小是固定的,但是文本长度并不总是固定的。比如列表中的文章标题、界面下方的按钮文本等等。 为了尽可能让这些文字可见,传统的做法是通过文本长度设置文本大小,或者通过an…
记一次腾讯TBS浏览服务集成实践
这次的分享源于最近的实际开发工作。 另外还需提供Word、Excel、PowerPoint、PDF等常见文档格式的内容预览。 经过一番技术选型,最终选定集成腾讯TBS浏览服务进项目,支撑如上所述两个功能。 首先进入下图所示网页,在该下载页下载SDK并保存。 下载成功后,将jar…
解谜:为何用了9-Patch背景图后自带Padding属性?
本次分享的主题源于笔者在实际开发中遇到的问题。 具体现象为:当普通的9-Patch图用作TextView的backGround属性后,整个TextView便有了一定的Padding值。但笔者并没有给定padding属性,甚至在预览视图中,也没有展现出padding效果。但运行起…
粮草先行——Android折叠屏开发技术点番外篇之运行时变更处理原则
手动处理数据,避免APP重启。 同样,这两种方式也同时适用于改变屏幕方向、更改系统语言、甚至输入法等等。 因此,本文也同样适用于改变屏幕方向等情况的处理。 我给你的答案是:选择最合适的。 比如更改屏幕方向,由竖屏转换为横屏,如果我们只有一套布局,符合按比例缩放仍然显示正常的话,…
为了安全——应用锁屏开发实战
今天我们来谈一个问题:应用锁屏。 说老实话,这种设定目前已经被广泛使用了,多见于支付宝、京东金融、QQ等对安全性和隐私性要求较高的程序使用。 关于该功能的实现,有不止一条解决办法。这里就不一一列举了,只对其中一种做详细解释和示例程序的代码分享。 设置需要出现锁屏的标志变量,默认…
提升应用崩溃时的用户体验——去掉烦人的“很抱歉”提示框
相信很多在用或者用过Android系统的的手机的朋友都有过这样的经历:自己玩着玩着某个程序,突然屏幕一黑,然后出现一个对话框,提示很抱歉,应用程序已经停止工作。这意味着程序已然崩溃了,用户唯一要做的就是接下来重新运行这个程序,或者去干些别的。我个人推测,前者占大多数。 当然,一…
Android GridView 点击效果(可能是最快捷的实现,另有福利)
好久没有发过文章了,今天给朋友们分享的是:给GirdView添加点击效果,点击时改变背景。 这其实也是我在项目开发中遇到的问题,习惯性的百度了一圈,又Google了一圈。解决方案大致可归为两类: Selector实现,用XML定义,Layout中赋予相应属性。 首先第1个解决办…
Android Jetpack之AppCompat(一)
今天我们来聊一聊有关AppCompat,作为Android Jetpack系列文章的开篇。说到Android Jetpack,我们先看一下这张图: 从图中我们可以看到,整个Android Jetpack分为了四大部分,而我们今天要讲述的就是Foundation中的AppComp…
粮草先行——Android折叠屏开发技术点(一)
最近有关折叠屏产品的新闻层出不穷,各家手机厂商也分别慢慢地亮出了自家的产品。然而市场上的一些APP仍然没有很好地适配这样的设备,显示不正常和应用重启的状况时有发生。因此,我会用接下来的几篇文章来点出有关折叠屏开发中的一些需要注意的地方。 今天我们先来说一下生命周期,这是广大开发…
粮草先行——Android折叠屏开发技术点(二)
继该系列的第一篇和番外篇之后,今天我们来聊一聊多窗口开发的注意事项。实际上,与其说“多窗口开发”,不如说让我们的APP适应多窗口模式。 虽然在Android Q中,多窗口模式很可能将成为默认行为,但要兼容之前的版本,我们仍然需要做一些事情。 注意,在默认情况下,一旦失去焦点,会…
抓出卡顿元凶,从分析掉帧开始
这次我们依旧来谈谈有关性能优化的话题,这次我们会用到Google给我们提供的分析工具——Systrace。如果你还不了解这个工具,最好先了解一下。Google 官方文档: 我们还会用到一个Demo,用来对比卡顿和不卡顿的状况。 这里解释一下,GIF动画表现得不是很完善,流畅运行…
取之有道——巧用Root权限 启动其他APP中的Activity
这次博主来分享一个很巧妙的办法来启动其他APP中Activity的方法。 首先说一下这样做的目的:最近博主在攻克一个技术难点,就是搞定某些三方系统中,对于应用权限的限制。为此给出用户指导,引导用户启动系统中的权限设置来设置信任。到此,问题就来了:我们不知道权限设定的包名,也不知…
自定义ImageView系列 - 区域截图(上)
关于ImageView呢,其实我之前接触过一些继承它来实现一些功能。比如双指缩放,单指移动之类。而最近工作中又要用到继承它来实现某些功能。借此机会好好整理一下,也分享给更多需要的朋友们! 使用本系列文章完成的自定义多功能ImageView可以实现微信中的头像选择的照片调整功能。…
自定义ImageView系列 - 区域截图(下)
图片缩放。 由于在前文中,我们知道了指定区域的方位,那么解决起来就轻松很多了。只要先截取整个屏幕,然后利用Matrix将图片进行裁剪即可。 截取到指定部分的图像后,再利用Matrix的postScale()方法即可进行缩放。 如上所示,即可完成截图和缩放操作。 接下来放上整个重…
自定义ImageView系列 - 区域截图(下)
图片缩放。 由于在前文中,我们知道了指定区域的方位,那么解决起来就轻松很多了。只要先截取整个屏幕,然后利用Matrix将图片进行裁剪即可。 截取到指定部分的图像后,再利用Matrix的postScale()方法即可进行缩放。 如上所示,即可完成截图和缩放操作。 接下来放上整个重…
破解Android设备无法联调的谜题
这篇文章要感谢来自知乎的小伙伴:子非鱼,他最近被一件事情困惑,那就是:Android手机无法联调了。在解决完他的疑问后,突然意识到,其实自己在前一段时间也曾遇到同样的问题,最后居然还怀疑是电脑和手机不兼容导致的。然而,罪魁祸首居然是数据线。 好了,下面我们来看一下具体情况吧。 …
巧用Handler获取View控件信息
众所周知,在Android实际开发中,对于某些复杂多变的情况,控件的位置摆放、大小控制并非是xml类型的layout文件完全可以搞定的。此时,我们通常会使用Java代码来通过动态计算,将指定的控件摆放在相应的位置,并限定其大小。同样地,也需要获取某个控件的大小。 在需要测量时(…
解决TextView引起的莫名崩溃
回想2017年,当时的我一直都在忙着做一款IM应用,功能和微信、QQ类似。 在开发和测试的过程中,发现了几个可以总结记录的东西,今天和大家来分享其中之一。 乍看上去,倒是和我这边没什么关系,都是Android内部实现的问题。但是每到这个地方,都会崩溃,100%复现。这对于实际用…
Android 6.0 运行时权限简明处理
今天来跟大家聊这样一个话题——权限。 正如各位所知,传统意义上的权限是在用户安装APP时被许可的。尽管在使用过程中,某些第三方Rom或者安全软件会再次提示权限,但从系统本身来说,就是被放行了。 在Google推出6.0之后,引入了新的权限机制,叫做运行时权限(Runtime P…
优化Activity启动速度的另类解法
今天来给大家分享一个性能优化的经验,主要在Activity启动方面。 众所周知,给用户即时的响应是增强移动设备用户体验的重要一环,而Activity在启动过程中,又会经历至少onCreate(), onStart(), onResume()这三个回调过程。而在这三个过程中,又会…
下一页