自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aqi00的博客

好好做技术,认真写博文

  • 博客(325)
  • 资源 (85)
  • 收藏
  • 关注

原创 Android开发笔记(一百八十四)利用TBS浏览各种文档

虽然使用POI库可以解析并显示Office文档,但这需要开发者自己搭个服务器,确实多有不便。倘若只是简单的浏览文档内容,完全可以利用第三方的开发包直接渲染,比如腾讯的TBS服务(全称Tencent Browser Service,即腾讯浏览服务)。通过集成TBS服务,App能够直接打开下列文件格式:doc、docx、ppt、pptx、xls、xlsx、pdf、txt、epub,可谓中小开发者的一大福音。TBS官网的接入说明网址为https://x5.tencent.com/docs/access.htm.

2022-04-14 01:00:00 1422 1

原创 Android开发笔记(一百八十三)利用HMS轻松扫描二维码

扫描二维码是HMS的一项基础服务,虽然谷歌公司也提供了zxing扫码框架,但是zxing框架的集成步骤不够简洁,而且它的识别速度偏慢,识别准确率也不高,远不如HMS的扫码服务来得好用。下面介绍如何在App工程中集成HMS的扫码服务。

2022-03-17 01:00:00 1765 2

原创 Android开发笔记(一百八十二)使用CameraX录像

通过CameraX实现录像功能的话,初始化相机的步骤与拍照时大同小异,区别在于增加了对视频捕捉器VideoCapture的处理。需要修改的代码主要有三个地方,分别说明如下。第一个地方是在AndroidManifest.xml里补充声明录音权限,完整的权限声明配置如下所示:<!-- 相机 --><uses-permission android:name="android.permission.CAMERA" /><!-- 录音 --><uses-perm

2022-02-16 01:00:00 2681 9

原创 Android开发笔记(一百八十一)使用CameraX拍照

常言道,眼睛是心灵的窗户,那么相机便是手机的窗户了,主打美颜相机功能的拍照手机大行其道,可见对于手机App来说,如何恰如其分地运用相机开发至关重要。Android的SDK一开始就自带了相机工具Camera,从Android5.0开始又推出了升级版的camera2,然而不管是初代的Camera还是二代的camera2,编码过程都比较繁琐,对于新手而言有点艰深。为此谷歌公司在Jetpack库中集成了增强的相机库CameraX,想让相机编码(包括拍照和录像)变得更加方便。CameraX基于camera2开发,它

2022-02-11 01:00:00 3360 3

原创 Android开发笔记(一百八十)使用Glide加载特殊图像

Android从9.0开始增加了新的图像解码器ImageDecoder,该解码器支持直接读取GIF文件的图形数据,结合图形工具Animatable即可在图像视图上显示GIF动图。虽然通过ImageDecoder能够在界面上播放GIF动画,但是一方面实现代码有些臃肿,另一方面在Android9.0之后才支持,显然不太好用。现在有了Glide,轻松加载GIF动图不在话下,简简单单只需下面一行代码:Glide.with(this).load(R.drawable.happy).into(iv_cover)

2022-01-20 01:00:00 1414

原创 Android开发笔记(一百七十九)避免方法数过多的问题

一个大规模的App工程,往往引入了数量繁多的第三方开发库,其中既有官方的Jetpack库,也有第三方厂商的开源包。有时候运行这种App会报错“Cannot fit requested classes in a single dex file (# methods: 65894 > 65536)”,意思是App内部引用的方法数量超过了65536个,导致App异常退出。原来Android的每个App代码都放在一个dex文件中,系统会把内部方法的索引保存在一个链表结构里,由于这个链表的长度变量是short

2022-01-12 01:00:00 499

原创 Android开发笔记(一百七十八)更安全的数据仓库DataStore

虽然SharedPreferences用起来比较方便,但是在一些特殊场景会产生问题。比如共享参数保存的数据较多时,初始化共享参数会把整个文件加载进内存,加载耗时可能导致主线程堵塞。又如调用apply方法保存数据时,频繁apply容易导致线程等待超时。为此Android官方推出了数据仓库DataStore,并将其作为Jetpack库的基础组件。DataStore提供了两种实现方式,分别是Preferences DataStore 和Proto DataStore,前者采用键值对存储数据,后者采用自定义类型存储

2021-12-30 13:28:50 2272 6

原创 《Android App开发进阶与项目实战》出版后记

  《Android App开发入门与项目实战》刚写完,我马上着手编写它的姊妹篇《Android App开发进阶与项目实战》,因为开发入门一书比较基础,还需要一本讲解高级开发与新技术的进阶书籍。App开发入门与App开发进阶两本图书同时也是对《Android Studio开发实战 从零基础到App上线(第2版)》的全面升级,堪称《Android Studio开发实战》的第3版。开发实战原有16章内容,而App开发入门有15章,App开发进阶有13章,两本相加总共28章,比起开发实战足足多出了12章内容,可谓

2021-11-04 03:00:00 1705 3

原创 Android开发笔记(一百七十七)借助FileProvider安装应用

除了发送彩信需要文件提供器,安装应用也需要FileProvider。不单单彩信的附件图片能到媒体库中查询,应用的APK安装包也可在媒体库找到。查找安装包依然借助于内容解析器,具体的实现过程和查询图片类似,比如事先声明如下的对象变量:private List<ApkInfo> mApkList = new ArrayList<ApkInfo>(); // 安装包列表private Uri mFilesUri = MediaStore.Files.getContentUri("e

2021-11-02 01:00:00 711 1

原创 Android开发笔记(一百七十六)借助FileProvider发送彩信

通过系统相册固然可以获得照片的路径对象,却无法知晓更多的详细信息,例如图片名称、文件大小、文件路径等等都不知道,也就无法进行个性化的定制开发。为了把更多的文件信息开放出来,Android设计了专门的媒体共享库,允许开发者通过内容组件从中获取更详细的媒体信息。就图片而言,相册媒体库的路径为MediaStore.Images.Media.EXTERNAL_CONTENT_URI,于是通过内容解析器即可从媒体库依次遍历得到图片列表详情。为便于代码管理,首先要声明如下的对象变量:private List&l

2021-10-27 01:00:00 872

原创 Android开发笔记(一百七十五)利用Room简化数据库操作

虽然Android提供了数据库帮助器,但是开发者在进行数据库编程时仍有诸多不便,比如每次增加一张新表,开发者都得手工实现以下代码逻辑:1、重写数据库帮助器的onCreate方法,添加该表的建表语句;2、在插入记录之时,必须将数据实例的属性值逐一赋给该表的各字段;3、在查询记录之时,必须遍历结果集游标,把各字段值逐一赋给数据实例;4、每次读写操作之前,都要先开启数据库连接;读写操作之后,又要关闭数据库连接;上述的处理操作无疑存在不少重复劳动,数年来引得开发者叫苦连连。为此各类数据库处理框架纷纷涌现,

2021-06-01 10:30:16 936 4

原创 5G时代的Android App开发入门与项目实战

随着移动互联网的持续发展,Android系统从智能手机逐步拓展到平板电脑、智能电视、车载大屏、智能家居、智能手表等诸多设备,Android开发依然是前景可期的IT岗位。当然,整个社会正在迈向5G时代,这对新手学习Android开发构成了不小的挑战,如果新手仍旧按照几年前的Android书籍学习,就会发现学完之后学不到什么新技术。即使是Android初中级工程师,可能局限于平时的工作内容,也不容易接触新理念新潮流。在5G时代,Android App开发需要发挥5G优势给用户带来新体验、增添新功能、用得更省

2021-03-26 13:16:23 1194

原创 Android开发笔记(一百七十四)图像解码器ImageDecoder

早期的Android只支持三种图像格式,分别是JPEG、PNG和GIF,虽然这三类图片都能在ImageView上显示,但对于GIF格式来说,图像视图仅能显示动图的初始画面,无法直接播放动画效果。此外,由于JPEG、PNG和GIF三兄弟历史悠久,当时的图像压缩算法不尽完美,并且手机摄像头的分辨率越来越高,导致一张高清照片动辄几M乃至十几M大小,使得手机的存储空间越发吃紧,这也要求更高效的压缩算法。目前智能手机行业仅剩安卓和iOS两大阵营,为了争夺移动互联网时代的技术高地,两大阵营的盟主纷纷推出新的图像压缩算

2021-03-03 12:15:50 3182 1

原创 《Android App开发入门与项目实战》出版后记

  《Android Studio开发实战:从零基础到App上线》自面世以来,承蒙众多朋友的抬爱,该书一直保持不错的销量,其中第一版的出货量突破一万,第二版的出货量即将突破两万。对于一个程序员来说,这是对其劳动成果的极大肯定。  回想五年多前我在CSDN输出技术文章,当时仅仅是想分享自己的学习经验,又怎么会料到成为技术书籍的作者呢?首先要感谢CSDN网站,不但给技术人提供了展露才华的平台,而且我的博客专栏 《Android开发笔记》曾被放在CSDN首页数月之久,CSDN编辑正是我写作道路上的第一位伯乐。其

2021-01-03 18:02:29 2389 3

原创 Android开发笔记(一百七十三)给安装包APK文件瘦身

App不但要求功能完善,其他方面也得综合考虑,比如APK安装包的文件大小就是很重要的因素。具备同样功能的两个安装包,一个很大很占用空间,另一个较小不怎么占空间,用户的选择结果自然不言而喻。如何减少打包后的APK文件大小,也就是所谓的APK瘦身,这涉及到很多技术手段,最常用的主要有四块:去除冗余功能、精简无用资源、减少图片大小、过滤无用的so文件,分别介绍如下:一、去除冗余功能每当开发者创建新的Android项目,打开模块的AndroidManifest.xml,看到默认的application节点是

2020-09-07 22:22:34 962 1

原创 【赠书活动】赠送清华社的《好好学Java:从零基础到项目实战》

零基础学习Java的朋友有福利啦,本博客现联合公众号“老欧说安卓”开展送书活动,下面就是本次活动要赠送的书籍封面书籍信息:作者:欧阳燊出版时间:2020年7月定价:128元版本:基于Java11和IDEA简介:全书共分为17章。其中第1~6章介绍Java的常见数据类型及开发,包括基本变量类型、数组类型、包装变量类型、字符串类型以及日期时间类型;第7~11章介绍面向对象的开发过程,包括面向对象的三要素(封装、继承、多态)、面向对象的扩展(嵌套、枚举、抽象、接口)、面向对象的应用(容器、泛型

2020-07-20 12:54:37 1573 9

原创 Android开发笔记(一百七十二)第二代翻页视图ViewPager2

正如RecyclerView横空出世取代ListView和GridView那样,Android也推出了二代翻页视图ViewPager2,打算替换原来的翻页视图ViewPager。与ViewPager相比,ViewPager2支持更丰富的界面特效,包括但不限于下列几点:1、不但支持水平方向翻页,还支持垂直方向翻页;2、支持RecyclerView.Adapter,允许调用适配器对象的notifyItem***方法,从而动态刷新某项视图;3、除了当前页,也支持展示左右两页的部分区域;4、支持在翻页过程中

2020-06-23 22:44:24 2280 3

原创 Android开发笔记(一百七十一)使用Glide加载网络图片

如何方便而又快速地显示网络图片,一直是安卓网络编程的热门课题,前些年图片缓存框架Picasso、Fresco等等大行其道,以至于谷歌按捺不住也开发了自己的Glide开源库。由于Android本身就是谷歌开发的,Glide与Android系出同门,因此Glide成为事实上的官方推荐图片缓存框架。不过Glide并未集成到Android的SDK当中,开发者需要另外给App工程导入Glide库,也就是修改模块的build.gradle,在dependencies节点内部添加如下一行依赖库配置: impl..

2020-05-25 22:31:51 2529 1

原创 Android开发笔记(一百七十)给App的应用页面注册快捷方式

元数据不单单能传递简单的字符串参数,还能传送更复杂的资源数据,从Android7.1开始新增的快捷方式便用到了这点,譬如在手机上桌面长按支付宝图标,会弹出如下图所示的菜单。点击菜单项“扫一扫”,直接打开支付宝的扫码页面;点击菜单项“付钱”,直接打开支付宝的付款页面;点击菜单项“收钱”,直接打开支付宝的收款页面。如此不必打开支付宝首页,即可迅速跳转到常用的App页面,这便是所谓的快捷方式。那么Android7.1又是如何实现快捷方式的呢?那得再琢磨琢磨元数据了。原来元数据的meta-data标签除了前

2020-05-10 22:57:25 1117

原创 Android开发笔记(一百六十九)利用BottomNavigationView实现底部标签栏

在Android Studio上创建官方默认的首屏标签页面很方便,首先右击需要添加标签栏的模块,在弹出的右键菜单中依次选择“New”——“Activity”——“Bottom Navigation Activity”,弹出下图所示的活动创建页面。在创建页面的“Activity Name”一栏填写新活动的名称,再单击页面右下角的Finish按钮,Android Studio就会自动创建该活动的...

2020-04-25 12:20:02 2561 1

原创 Android开发笔记(一百六十八)为应用绑定通知渠道并展示消息角标

为了分清消息通知的轻重缓急,从Android8开始新增了通知渠道,并且必须指定通知渠道才能正常推送消息。一个应用允许拥有多个通知渠道,每个渠道的重要性各不相同,有的渠道消息在通知栏被折叠成小行,有的渠道消息在通知栏展示完整的大行,有的渠道消息甚至会短暂悬浮于屏幕顶部,有的渠道消息在推送时会震动手机,有的渠道消息在推送时会发出铃声,有的渠道消息则完全静默推送,这些提示差别都有赖于通知渠道的特征管理。...

2020-04-12 16:44:49 2181 2

原创 《Android Studio开发实战 从零基础到App上线(第2版)》出版后记

2015年11月23日,鄙人在csdn发表了第一篇技术文章,掐指一算距今已有三年。遥想当年开写博客,只是为了总结经验同时分享出来,后来机缘巧合受到出版社编辑邀请并出了书,完全是无心插柳的结果。当初写作《Android Studio开发实战:从零基础到App上线》第一版前后花了一年多的时间,经过三审三校于2017年6月正式上市,其实这本书出来之时没能赶上好时候,从2017年开始App学习热潮被人工智...

2020-04-06 16:57:21 28398 52

原创 Android Studio 3.4升级后的运行问题解决办法

Android Studio 3.4推出有一段时间了,升级之后又有几个问题需要处理,说明如下:一、把Gradle升级到AS3.4配套的5.1.1版本1、手工下载Gradle4.6并解压,下载地址是http://downloads.gradle.org/distributions/gradle-5.1.1-all.zip。将下载的压缩包解压到本地目录,比如解压到D:\Android\gradl...

2019-07-04 22:33:13 14592 16

原创 Android8.0、9.0、10.0、11.0的新特性兼容适配代码修改

《Android Studio开发实战 从零基础到App上线(第2版)》在书后面的附录中给出了Android8和Android9的主要特性说明,附录表格如下图所示:不过附录表格只涵盖了常见的功能代码适配,而Android8和Android9的众多新特性还涉及到其它的代码适配,下面就补充列出Android8和Android9的额外兼容处理说明:Android8.01、属性动画组合Ani...

2019-03-23 13:11:05 8057 3

原创 《Android Studio开发实战 从零基础到App上线(第2版)》常见问题解答

下面是第二版读者较经常提出的问题,现统一整理回复如下:1、第1章的SVN仓库地址问题:第17页“1.5.2 安装SVN工具”这节里面提到的SVN仓库地址要填什么?回答:SVN仓库地址指的是SVN服务器地址,如果你们单位有专人负责svn代码管理,可向他(svn管理员)咨询这个svn地址。如果你的代码只在自己电脑运行,不需要提交给服务器备份,那么建议略过svn这部分。2、第2...

2019-02-12 22:54:25 5780 31

原创 Kotlin入门(33)运用扩展属性

进行App开发的时候,使用震动器要在AndroidManifest.xml中加上如下权限:    &lt;!-- 震动 --&gt;    &lt;uses-permission android:name="android.permission.VIBRATE" /&gt;让手机震动的功能用到了震动器Vibrator类,而震动器对象从系统服务VIBRATOR_SERVICE获得,实现该...

2018-11-10 15:46:54 1056

原创 Kotlin入门(32)网络接口访问

手机上的资源毕竟有限,为了获取更丰富的信息,就得到辽阔的互联网大海上冲浪。对于App自身,也要经常与服务器交互,以便获取最新的数据显示到界面上。这个客户端与服务端之间的信息交互,基本使用HTTP协议进行通信,即App访问服务器的HTTP接口来传输数据。HTTP接口调用在Java代码中可不是一个轻松的活,开发者若用最基础的HttpURLConnection来编码的话,至少要考虑以下场景的处理:1、...

2018-11-07 23:16:34 3897 2

原创 Kotlin入门(31)JSON字符串的解析

json是App进行网络通信最常见的数据交互格式,Android也自带了json格式的处理工具包org.json,该工具包主要提供了JSONObject(json对象)与JSONArray(json数组)的解析处理。下面分别介绍这两个工具类的用法:1、JSONObjectJSONObject的常用方法如下所示:构造函数 : 从指定字符串构造出一个JSONObject对象。getJSON...

2018-11-03 17:44:47 13726

原创 Kotlin入门(30)多线程交互

Android开发时常会遇到一些耗时的业务场景,比如后台批量处理数据、访问后端服务器接口等等,此时为了保证界面交互的及时响应,必须通过线程单独运行这些耗时任务。简单的线程可使用Thread类来启动,无论Java还是Kotlin都一样,该方式首先要声明一个自定义线程类,对应的Java代码如下所示: private class PlayThread extends Thread { ...

2018-10-29 21:56:36 3404 1

原创 Kotlin入门(29)任务Runnable

任务Runnable定义了一个可以独立运行的代码片段,通常用于界面控件的延迟处理,比如有时为了避免同时占用某种资源造成冲突,有时则是为了反复间隔刷新界面从而产生动画效果。运行一个任务也有多种形式,既可在UI线程中调用处理器对象的post或者postDelayed方法,也能另外开启分线程来执行Runnable对象。那么在运行任务之前,必须事先声明该任务的对象,然后才能由调用者执行该任务。Kotlin...

2018-10-27 12:07:11 8852 1

原创 Kotlin入门(28)Application单例化

Application是Android的又一大组件,在App运行过程中,有且仅有一个Application对象贯穿应用的整个生命周期,所以适合在Application中保存应用运行时的全局变量。而开展该工作的基础,是必须获得Application对象的唯一实例,也就是将Application单例化。获取一个类的单例对象,需要运用程序设计中常见的单例模式,倘若通过Java编码实现单例化,想必早已是大...

2018-10-23 17:24:04 5458

原创 Kotlin入门(27)文件读写操作

Java的文件处理用到了io库java.io,该库虽然功能强大,但是与文件内容的交互还得通过输入输出流中转,致使文件读写操作颇为繁琐。因此,开发者通常得自己重新封装一个文件存取的工具类,以便在日常开发中调用。下面是一个文件工具类的简单Java代码:public class FileUtil { //保存文本文件 public static void saveText(Str...

2018-10-21 15:19:16 18582 3

原创 Kotlin入门(26)数据库ManagedSQLiteOpenHelper

共享参数毕竟只能存储简单的键值对数据,如果需要存取更复杂的关系型数据,就要用到数据库SQLite了。尽管SQLite只是手机上的轻量级数据库,但它麻雀虽小、五脏俱全,与Oracle一样存在数据库的创建、变更、删除、连接等DDL操作,以及数据表的增删改查等DML操作,因此开发者对SQLite的使用编码一点都不能含糊。当然,Android为了方便开发者的工作,已经提供了一个操作SQLite的工具类即S...

2018-10-19 09:09:41 2385 1

原创 Kotlin入门(25)共享参数模板

共享参数SharedPreferences是Android最简单的数据存储方式,常用于存取“Key-Value”键值对数据。在使用共享参数之前,要先调用getSharedPreferences方法声明文件名与操作模式,示例代码如下:    SharedPreferences sps = getSharedPreferences("share", Context.MODE_PRIVATE);...

2018-10-16 23:07:02 1217 1

原创 Kotlin入门(24)如何自定义视图

Android提供了丰富多彩的视图与控件,已经能够满足大部分的业务需求,然而计划赶不上变化,总是有意料之外的情况需要特殊处理。比如PagerTabStrip无法在布局文件中指定文本大小和文本颜色,只能在代码中通过setTextSize和setTextColor方法来设置。这用起来殊为不便,如果它能像TextView那样直接在布局指定文本大小和颜色就好了;要想让PagerTabStrip支持该特性,...

2018-10-13 12:19:54 1332

原创 Kotlin入门(23)适配器的进阶表达

前面在介绍列表视图和网格视图时,它们的适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应的视图对象。随着用户的下拉或者上拉手势,已经被回收的列表项要重新加载到界面上,倘若每次加载都得从头创建视图对象,势必增加了系统的资源开销。所以ViewHolder便应运而生,它在列表项首次初始化时,就将其视图对象保存...

2018-10-09 22:52:00 1064

原创 Kotlin入门(22)适配器的简单优化

列表视图为实现各种排列组合类的视图(包括但不限于Spinner、ListView、GridView等等),Android提供了五花八门的适配器用于组装某个规格的数据,常见的适配器有:数组适配器ArrayAdapter、简单适配器SimpleAdapter、基本适配器BaseAdapter、翻页适配器PagerAdapter。适配器的种类虽多,却个个都不好用,以数组适配器为例,它与Spinner...

2018-10-06 15:30:16 1476

原创 Kotlin入门(21)活动页面的跳转处理

Activity的活动页面跳转是App最常用的功能之一,在前几章的demo源码中便多次见到了,常常是点击界面上的某个按钮,然后跳转到与之对应的下一个页面。对于App开发者来说,该功能的实现非常普通,使用Java编码不过以下两行代码而已: Intent intent = new Intent(MainActivity.this, LinearLayoutActivity.class);...

2018-10-03 16:24:40 5529 1

原创 Kotlin入门(20)几种常见的对话框

提醒对话框手机上的App极大地方便了人们的生活,很多业务只需用户拇指一点即可轻松办理,然而这也带来了一定的风险,因为有时候用户并非真的想这么做,只是不小心点了一下而已,如果App不做任何提示的话,继续吭哧吭哧兀自办完业务,比如转错钱了、误删资料了,往往令用户追悔莫及。所以对于部分关键业务,App为了避免用户的误操作,很有必要弹出消息对话框,提醒用户是否真的要进行此项操作。这个提醒对话框便是Ap...

2018-09-27 22:58:55 6739 4

原创 Android Studio 3.2升级后的编译问题解决办法

2018年9月24日,Android Studio千呼万唤终于放出了3.2正式版,博主赶紧下载了安装包升级到最新版,每次AS升级都会带来各种各样的惊喜(大坑),这次不出所料也出现了几个编译问题,逐个想办法解决后记录如下,供各位朋友参考。一、AS3.2升级完毕后,Android Studio跳出下面一个提示框,说是为了充分发挥新特性的优势,建议开发者把Gradle升级到4.6。单击“Up...

2018-09-26 11:13:19 10838 1

Android使用更多更好看图像控件的代码例子

Android使用更多更好看图像控件的代码例子。用于演示在app中操作画廊控件Gallery、图像切换控件ImageSwitcher、调色板控件Palette、卡片视图控件CardView的使用工程与效果。

2016-09-06

Android使用列表弹窗的代码例子

Android使用列表弹窗的代码例子。用于演示app操作弹出菜单控件PopupMenu,以及列表弹窗控件PopupListWindow的界面与功能。

2016-09-05

Android操作工具栏Toolbar的代码例子

Android操作工具栏Toolbar的代码例子。用于演示app使用新版工具栏Toolbar以及新版搜索框SearchView的界面及功能。

2016-09-05

Android展示圆形转盘的代码例子

Android展示圆形转盘的代码例子。用于演示抽奖转盘、圆形菜单、环形热点客户端等可触摸旋转的界面动画效果。

2016-09-05

Android自带下拉刷新的代码例子

Android自带下拉刷新的代码例子。用于演示Android原生控件SwipeRefreshLayout下拉刷新布局的功能与用法。

2016-09-02

Android在图片上添加部件的代码例子

Android在图片上添加部件的代码例子。用于演示往图片添加圆角、添加边框、添加文本、添加图像、添加手写签名等功能。

2016-09-01

Android对图片进行特效处理的代码例子

Android对图片进行特效处理的代码例子。用于演示各种图片特效效果,包括:怀旧、光照、光晕、底片、浮雕、模糊、锐化、黑白、冰冻、素描等等。

2016-09-01

Android对图片进行变换操作的代码例子

Android对图片进行变换操作的代码例子。用于演示图片读写,以及图片加工操作如图片压缩、调整大小、图片裁剪、图片旋转等等功能。

2016-09-01

Android自定义Drawable的代码例子

Android自定义Drawable的代码例子。用于演示自定义Drawable的功能,包括自定义形状、自定义水印、自定义淡出等几种类型的Drawable。

2016-08-31

Android操作属性动画的代码例子

Android操作属性动画的代码例子。用于演示app展示属性动画以及动画集合的功能。

2016-08-31

Android监控电量变化的代码例子

Android监控电量变化的代码例子。用于演示监控电量变化、锁屏事件、解除锁屏等功能。

2016-08-31

Android开发工具ADT插件sqlitemanager_1.0.0

Android开发工具ADT插件sqlitemanager_1.0.0。用来管理SQLite数据库

2016-08-30

Android的自动化测试框架robotium-solo-5.3.1

Android的自动化测试框架Robotium的jar包。

2016-08-30

AndroidTools_1.1.4_多渠道打包利器

AndroidTools_1.1.4_多渠道打包利器。即兰贝壳儿,用来给友盟统计打多渠道包的

2016-08-30

Android对多语言支持的代码例子

Android对多语言支持的代码例子。用于演示app支持多国语言展示的使用方法,还演示了汉字转拼音的两种方案:Android自带的HanziToPinyin,以及pinyin4j。

2016-08-30

Android兼容5.0水波动画的代码例子

Android兼容5.0水波动画的代码例子。用于演示4.*及以下版本兼容5.0以上点击水波动画的功能,提供了三种实现方式,分别是RevealLayout水波、RippleView水波、MaterialRippleLayout水波。

2016-08-30

Android对屏幕规格适配的代码例子

Android对屏幕规格适配的代码例子。用于演示app在不同屏幕规格下的显示适配处理,包括手机与平板、横屏与竖屏等不同情况下的屏幕规格适配。

2016-08-30

Android对资源和权限进行校验的代码例子

Android对资源和权限进行校验的代码例子。用于演示app在运行时对硬件资源、存储资源、剩余流量进行合法性校验,还演示了app对定位权限、拍照权限、录音权限等功能进行合法性校验。

2016-08-29

Android上传文件的代码例子

Android上传文件的代码例子。用于演示app使用HttpUrlConnection、android-async-http、Retrofit三种方式上传文件的功能,还演示了ftp上传和sftp上传的功能。

2016-08-29

Android对运行时状态检查的代码例子

Android对运行时状态检查的代码例子。用于演示app在运行时对进程Process、页面Activity、服务Service的合法性判断。

2016-08-29

Android使用任务调度JobScheduler的代码例子

Android使用任务调度JobScheduler的代码例子。用于演示Android5.0新增的任务调度机制,通过代码对JobInfo、JobScheduler、JobService这三个新工具进行了使用说明。

2017-05-11

Android浏览书籍的层叠翻页动画效果

Android浏览书籍的层叠翻页动画效果。用于演示手机阅读电子书的平滑翻页,另外说明了PDF文件渲染器PdfRenderer和栈视图StackView的使用方法。

2017-05-04

Android读取ppt和pdf文件的代码例子

Android读取ppt和pdf文件的代码例子。用于演示在手机屏幕上显示ppt和pdf文件内容的功能,其中读取ppt采用了读取纯文本与读取图文的两种方式,读取pdf采用了Vudroid框架和MuPDF框架分别进行解析,并对不同方式和框架进行了效果对比。

2017-04-16

Android读取并显示word文件的代码例子

Android读取并显示word文件的代码例子。用来演示在手机屏幕上显示wrod文档内容的功能,包括旧的doc格式与新的docx两种格式,而且支持图文混排内容的客户端展示。

2017-04-09

Android实现可定制可滑动的标签栏的代码例子

Android实现可定制可滑动的标签栏的代码例子。用来演示结合FragmentTabHost和ViewPager实现实现可定制可滑动的底部标签栏Tabbar的功能。

2017-04-09

Android使用截图和录屏功能的代码例子

Android使用截图和录屏功能的代码例子。演示了如何通过媒体投影管理器MediaProjectionManager实现截图和录屏功能,同时演示了悬浮窗在截图和录屏中的实际运用。

2017-03-24

Android使用文本输入布局TextInputLayout的代码例子

Android使用文本输入布局TextInputLayout的代码例子。用于演示文本输入布局TextInputLayout和文本输入编辑框TextInputEditText对编辑框的功能增强。

2017-03-15

Android自定义行为Behavior的代码例子

Android自定义行为Behavior的代码例子。用于演示在CoordinatorLayout中,通过自定义Behavior实现两个控件实时互动的功能,包括:侧滑删除视图、女孩照镜子、定滑轮升降三种动画效果。

2017-03-08

Android使用协调布局CoordinatorLayout的代码例子

Android使用协调布局CoordinatorLayout的代码例子。用于演示CoordinatorLayout的基本用法,以及悬浮按钮FloatingActionButton、底部弹窗BottomSheetBehavior的使用方法。

2017-02-27

Android使用可折叠工具栏布局CollapsingToolbarLayout的代码例子

Android使用可折叠工具栏布局CollapsingToolbarLayout的代码例子。用于演示通过CollapsingToolbarLayout实现标题栏的动态折叠效果,以及AppBarLayout的五种滚动标志的完整效果图。

2017-02-24

Android使用应用栏布局AppBarLayout的代码例子

Android使用应用栏布局AppBarLayout的代码例子。用于演示通过AppBarLayout实现工具栏Toolbar上滑与下拉的动态效果,另外介绍了嵌套滚动视图NestedScrollView的基本用法,以及AppBarLayout的几种滚动标志之间的区别。

2017-02-24

Android使用导航视图NavigationView的代码例子

Android使用导航视图NavigationView的代码例子。用于演示结合DrawerLayout与NavigationView实现侧滑菜单的功能,并给出了自定义导航视图的一个例子。

2017-02-24

Android使用水波图形和矢量图形的代码例子

Android使用水波图形和矢量图形的代码例子。其中水波图形介绍了RippleDrawable的用法与兹定于水波动画的实现,矢量图形介绍了VectorDrawable的用法、SVG标记的用法,以及如何实现矢量动画。

2017-02-09

Android使用提示窗Snackbar的代码例子

Android使用提示窗Snackbar的代码例子。主要包括两个方面:自定义Toast提示窗,以及新版的Snackbar弹窗用法。

2017-02-09

Android校验手机制式适配的代码例子

Android校验手机制式适配的代码例子。主要包括三方面的制式判断:移动网络属于哪个运营商、移动网络是2G还是3G还是4G、手机是否支持双卡等等。

2017-02-09

Android使用变换图形的代码例子

Android使用变换图形的代码例子。用于演示裁剪图形ClipDrawable、缩放图形ScaleDrawable、旋转图形RotateDrawable的运用及其动画效果。

2017-02-09

Android自定义音乐播放器的代码例子

Android自定义音乐播放器的代码例子。支持展示音乐列表、滚动歌词,以及控制栏操作,另附演示用的一剪梅歌曲与歌词。另外演示了MediaRecorder/MediaPlayer组合、AudioRecord/AudioTrack,以及SoundPool对音频的处理。

2016-09-20

Android自定义视频播放器的代码例子

Android自定义视频播放器的代码例子。首先演示了原生控件VideoView和MediaController的联合使用,然后指出该组合的不足之处,最后给出了改进之后的自定义视频播放器的设计思路和功能演示效果。

2016-09-12

Android自带的循环器视图RecyclerView的代码例子

Android自带的循环器视图RecyclerView的代码例子。用于演示RecyclerView在列表展示方面的用法,包括三个布局管理:线性布局管理器LinearLayoutManager、网格布局管理器GridLayoutManager、瀑布流网格布局管理器StaggeredGridLayoutManager

2016-09-02

Android自带的两个侧滑布局的代码例子

Android自带的两个侧滑布局的代码例子。用来演示Android原生控件DrawerLayout和SlidingPaneLayout侧滑布局的用法与异同点。

2016-09-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除