
Android
文章平均质量分 95
本专栏专注于 Android 开发相关的技术
李斯维
这个作者很懒,什么都没留下…
展开
-
深度解析 Android Matrix 变换(二):组合变换 pre、post
文章介绍了 Android 中 Matrix 的组合变换,重点介绍了 preXXX 和 postXXX 方法的使用及其区别。并说明了变换顺序应为先缩放,再旋转,后平移,以确保效果符合预期。文章通过代码示例和动画展示了如何构建组合变换矩阵。原创 2025-03-23 16:56:09 · 1080 阅读 · 0 评论 -
深度解析 Android Matrix 变换(一):缩放 scale、旋转 rotate、平移 translate
在 Android 开发中,Canvas 是自定义 View 绘制的核心工具,而 变换(Transformations) 让我们可以灵活地操控图像,创造丰富的视觉效果。这些变换包括 旋转(rotate)、缩放(scale) 还是 平移(translate),合理地使用这些变换不仅可以优化绘制流程,还能减少资源消耗。在这篇文章中,将讲解这些变换的底层原理。原创 2025-03-15 11:40:09 · 1094 阅读 · 0 评论 -
Android 动画 ValueAnimator 的使用和那些坑
在进行属性动画的开发中, ObjectAnimator 是最常用到的类,它可以直接对任意对象的任意属性进行动画操作。本文讲解 ObjectAnimator 的常规使用以及其中的一些坑。原创 2025-02-23 18:01:39 · 1080 阅读 · 0 评论 -
制作自己的 @OnClick、@OnLongClick(告别 setOnClickListener,使用注解、反射和动态代理)
本文利用注解和反射的巧妙结合,在运行时进行事件和 View 的绑定,实现一个运行时的事件绑定注解框架。以 @OnClick 和 @OnLongClick 为例,读者跟着文章一步步将实现自己的运行时的事件绑定注解。原创 2024-06-15 13:37:29 · 1098 阅读 · 2 评论 -
Android 源代码在线查看 目录结构 不完全指南
分享几个可以在线查看Android 源代码的网站:Android 源代码官方查看网站:https://cs.android.com/;AOSPXRef 在线查看源代码:http://aospxref.com/;AndroidXRef 在线查找源代码:http://androidxref.com/;原创 2022-01-19 16:14:43 · 8096 阅读 · 1 评论 -
Android 应用的版本兼容 了解一下(理解 minSdkVersion、targetSdkVersion、maxSdkVersion、compileSdkVersion)
前言总所周知,Android 适用于众多类型的设备,从手机到平板电脑和电视都能搭载使用。为了能在所有这些设备上顺利运行,Android 系统在应用到设备上时,必不可少的需要处理与 Android 应用的兼容性问题。这里就牵扯出两个概念:设备兼容性与应用兼容性。设备兼容性:设备兼容 Android 的前提是它可以正常运行针对 Android 执行环境编写的应用。应用兼容性:针对市面上千奇百怪的 Android 设备,应用是否兼容每一种可能的设备配置。对于Android 应用开发者来说 ,我们无需担原创 2021-01-09 17:04:25 · 13892 阅读 · 8 评论 -
Android上最简单的IPC方案——Messenger
每个系统都会有相应的 IPC 机制以方便开发者来进行进程间通讯,Android 中有6中IPC机制。这6种方式各有各的优缺点和适用场景,在开发过程中最合适当前需求的才是最好的。至于它们各自适用场景此处就不详述了。今天主要来讲一讲这几种机制中最简单的一个 Messenger原创 2017-10-15 11:59:47 · 1367 阅读 · 1 评论 -
OkHttp接入HttpDNS,最佳实践
DNS(Domain Name System)即域名解析系统,这个东西说对于开发者来说,应该是没有不知道的。说简单点,这个系统的作用就是将域名解析成IP地址。我们的每一次网络请求,如果是使用域名,那么就是进行域名解析。一个优秀的域名服务应该能够满足两点要求,一个是能够正确的返回IP地址,二就是能够根据网络情况返回所请求的域名最近的服务器IP。原创 2017-10-14 19:15:20 · 3937 阅读 · 2 评论 -
Android解析JSON,你真的需要三方库?
一般情况下,如果服务器返回 JSON 数据,而且你又是做 Android 的,那么你首先想到的可能是GSON,或是fastJson这样的框架。这些框架能够很方便和快速的让我们将 JSON 转换成本地对象,是开发的首选。但是引用三方库也是有代价的,显而易见的就是包体积增大,库的升级等。这个时候,就需要想一想我们是不是必须要使用三方库了。原创 2017-09-18 23:38:31 · 796 阅读 · 0 评论 -
写多了自定义View,可以来试一试自定义Drawable
在 Android 开发中,会大量使用到自定义View,于是在很多开发者心里形成了自定义View优先的原则,需要一个新的效果,没问题,写个自定义View。但是写个自定义View还是一个比较麻烦的事,比如说需要复写onMeasure,onDraw,要考虑padding,考虑wrap_content等等。但是很多效果都没必要自定义View,写个Drawable就可以了。原创 2017-04-17 22:46:58 · 749 阅读 · 0 评论 -
Android ImageView 的scaleType 属性图解
ImageView 是Android中最常用的控件之一,而在使用ImageView时,必不可少的会使用到它的scaleType属性。该属性指定了你想让ImageView如何显示图片,包括是否进行缩放、等比缩放、缩放后展示位置等。Android提供了八种scaleType的属性值,每种都对应了一种展示方式,下面就对每一种scaleType属性值进行图文解释。原创 2017-03-26 13:47:27 · 1554 阅读 · 0 评论 -
Float中的那些常量 Infinity、NaN
在 Java 计算中,肯定会使用各种基本数据类型,进行加减乘除等操作。但是假如哪一天,你发现一个函数给你返回了一个float结果,你打印出来后却发现不是小数,而是Infinity或NaN这种东西,你可能就一脸黑人问号了。 这两个值确实是 Java 提供的数值,一个返回float的函数给你返回这两个值也是没有任何问题的。那这两个值各代表什么意义呢,下面给出答案原创 2017-03-28 17:03:12 · 4015 阅读 · 0 评论 -
Android Butter Knife 框架——最好用的View注入
最近在看GitHub上的一些代码时,发现很多工程都用到了Butter Knife这个框架,能节省很多代码量。像findViewById这种代码就不用再出现了,而且这个框架也提供了很多其他有用的注解。 抱着学习的心态看了官网上的文档,挺简单,也很实用,决定以后就用这个库了。原创 2016-10-26 12:22:16 · 801 阅读 · 1 评论 -
为什么我的Material Design风格列表点击时没有波纹扩散效果
这个问题是我在模仿Chessesquare项目的时候出现的,没想到这个还挺棘手的,主要是麻烦,有几个注意事项。这个问题困扰的时间还挺长,有时候就打算不去管它了,但是在今天却居然莫名其妙的解决了,总结起来就是几个问题是跟很多地方的代码有关,有一处代码不一样,就没有这种效果。原创 2017-01-13 09:57:11 · 644 阅读 · 0 评论 -
Android 写一个可以横向滑动条目的列表
在开发中,会发现很多列表希望条目能够侧滑,侧滑出来一两个按钮什么的,例如QQ就可以侧滑出删除按钮。这边文章就是教大家写一个可以侧滑的自定义控件。另外,本文的内容不是属于Android中比较高深的内容,高手可以略过。通过阅读本文,你可能学习到的知识有: 自定义侧滑控件的实现 Android事件传递简要内容 属性动画ValueAnimator的使用 先来看一下要实现的侧滑是什么原创 2016-10-28 21:03:30 · 4900 阅读 · 3 评论 -
使用Fragment懒加载的一种方式
在很多应用中,首页都是由三个或四个Fragment构成,且都是上中下结构。这种设计方式大行其道,但是作为首页,每一个Fragment的内容肯定是较多的,这个时候直接加载出来,或是默认加载两三个都是有点耗费资源的,特别是在打开应用的时候,如果操作过多可能会卡,所以很多应用在首页都会使用Fragment懒加载,例如微信。对于如何懒加载,也算是Android中比较简单的内容,本文只是针对这个提供一种方法原创 2016-10-26 13:24:09 · 697 阅读 · 0 评论