android
文章平均质量分 83
CysionLiu
静坐常思
展开
-
安卓中MVC模式的深度思索和实践(一)
这是一个有关安卓MVC框架模式的短系列,目的是思索和分析安卓中MVC模式更为真实的一面。 随着安卓开发这些年的发展,项目开发相关的框架模式一直是个比较火的话题,一度从传统忠实的MVC,聊到热火朝天的MVP,再到看似终极的MVVM,真有些百家争鸣的味道,是个好现象。不过呢,网上太多文章要么观点大同小异(ctrl+c+v),要么模棱两可,要么是铁杆粉丝不屑其它,而具有个人深度思考的文章却是较少。笔者呢,原创 2017-05-05 18:01:06 · 1877 阅读 · 0 评论 -
安卓API指南之Activity回顾
本系列的文章全部为学习摘要,不偏重各种细节展示,更多的是安卓体系重要节点的罗列,并适时加入少量自己的理解分析,以便能快速的回顾安卓体系结构和那些重要的技术点。 每个 Activity 都会获得一个用于绘制其用户界面的窗口。窗口通常会充满屏幕,但也可小于屏幕并浮动在其他窗口之上。比如透明主题或者Dialog主题的Activity。一个应用通常由多个彼此松散联系的 Activity 组成。Activit原创 2017-11-01 15:26:53 · 285 阅读 · 0 评论 -
安卓API指南之Fragment回顾
本系列的文章全部为学习摘要,不偏重各种细节展示,更多的是安卓体系重要节点的罗列,并适时加入少量自己的理解分析,以便能快速的回顾安卓体系结构和那些重要的技术点。 片段Fragment必须始终嵌入在 Activity 中,其生命周期直接受宿主 Activity 生命周期的影响。 例如,当 Activity 暂停时,其中的所有片段也会暂停;当 Activity 被销毁时,所有片段也会被销毁。 不过,当 A原创 2017-11-01 18:12:04 · 308 阅读 · 0 评论 -
Kotlin实现多函数接口的简化调用
对于一个声明了多个方法的接口,我们使用的时候有时仅仅关注于几个关键方法,并不需要实现所有的。可是由于接口调用的语法限制,使得我们不得不在代码中也显示声明实现了那些我们不关心的方法。在java中也有简化接口调用的方式,比如安卓中ViewPager监听页面切换时的接口PageChangeListener,官方提供了简单类: ViewPager.SimpleOnPageChangeListener来简化调原创 2017-06-18 13:50:44 · 8657 阅读 · 1 评论 -
滑动内联动效的实现之item的伴生变换
本文属于滑动内联动效系列的第二篇。仓库地址 滑动内联动效 指的是 在容器滑动的过程中,其子View对应展现出来的一些效果。本篇主要记录的是在容器滑动过程中,它的item伴随进行缩放和透明度变化。上图,明了。图1中,随着滑动,内部item呈现先变大再变小的趋势,同时透明度上也是先变亮在变暗的趋势。图2中,主要是横向的一些特效,分别有图片逆差效果,缩放效果以及透明度变换效果。方案分析思路基本同滑动内联动原创 2017-08-16 12:23:12 · 1372 阅读 · 0 评论 -
滑动内联动效的实现之图片平行逆差效果
本文属于滑动内联动效系列的第一篇。仓库地址 滑动内联动效 指的是 在容器滑动的过程中,其子View对应展现出来的一些效果。而图片平行逆差效果,就是在容器滑动过程中,图片也跟着移动的效果。语言太苍白,直接上效果。 上面图片还带了透明度的变化,但这不是本文的描述范围。 想要提前看整体实现,请直接移步到github仓库 图片平行逆差效果早见于网络,常见思路有两种: 1- 继承滑动容器或者在滑动原创 2017-08-11 17:37:18 · 1282 阅读 · 1 评论 -
Kotlin小利器-TargetFun,让多函数接口的调用更加简单
喜欢直接看代码的读者请移步: Kotlin-TargetFun 随着Kotlin的加入,在安卓开发中写代码变得越发的简洁和灵活。比如原来的时候用Java书写一个最简单的View的点击事件,代码是这样: btn1.setOnClickListener(new OnClickListener(){ public void onClick(View v) { ...原创 2018-12-02 15:59:50 · 1452 阅读 · 1 评论 -
安卓API指南之Intent 和 Intent 过滤器
本系列的文章全部为学习摘要,不偏重各种细节展示,更多的是安卓体系重要节点的罗列,并适时加入少量自己的理解分析,以便能快速的回顾安卓体系结构和那些重要的技术点。 Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个: 启动 Activity:通过将 Intent 传递给 startActivity()原创 2017-11-01 11:17:21 · 365 阅读 · 0 评论 -
安卓API指南之应用基础知识简介
本系列的文章全部为学习摘要,不偏重各种细节展示,更多的是安卓体系重要节点的罗列,并适时加入少量自己的理解分析,以便能快速的回顾安卓体系结构和那些重要的技术点。 安卓apk文件安装到设备后,成为设备中的一个应用,每个应用都在其自己的 Linux 进程内运行,每个进程都具有自己的虚拟机 (VM),默认情况下,系统会为每个应用分配一个唯一的 Linux 用户 ID,因此应用代码是在与其他应用隔离的环境中运原创 2017-11-01 11:12:13 · 490 阅读 · 0 评论 -
EditText实现输入时自动追加单位,输入证件号部分变星号也可参考
这是本人第一篇技术博客,当然要原创啦。作为第一篇,说点基础又实用的,EditText,大家都用过,最基本的控件了。在开发过程中,有时为了用户体验,会在EditText输入过程中,追加单位,或者输入证件号时部分变星号这类需求。本文就对此进行讨论。如有更好思路,欢迎指教。 实现思路是双层布局,上面透明输入内容,下面TextView显示内容,需要对EditText的输入进行监听。效果图就不展示了,很简原创 2016-03-15 00:42:01 · 6700 阅读 · 2 评论 -
ThreadLocal工作机制-基于安卓sdk 25
ThreadLocal类(TL 代替)主要是为应用提供线程作用域的局部变量,即这些变量的值的获取只在其存放的线程里有效。TL对象并不是这个局部变量,其更像一个引导者。当某个线程还在运行且ThreadLocal对象还可以访问,那么该线程将持有ThreadLocal对象的一个隐式引用,线程回收,则TL回收。一个线程可以具有多个TL对象。每个Thread都将维护一个ThreadLocalMap类,即线程局原创 2017-07-04 18:58:15 · 929 阅读 · 0 评论 -
简单速记-3句话浓缩Handler四件套
Handler四件套:Looper,MessageQueue(MQ),Handler和Message Looper:消息轮询器,持有消息队列,并轮询该队列以提供给Handler消息。私有构造器,构造器内创建消息队列MQ,使用前需调用其封装函数prepare(),其内为初始化校验,并结合ThreadLocal,保证本对象的线程作用域的有效且本线程内该对象的唯一性; 类级别持有主线程的Looper对原创 2017-07-06 12:04:14 · 938 阅读 · 8 评论 -
TabLayout的指示器宽度问题
最近碰到一个需求,因为是我比较感兴趣的TabLayout的,所以记录一下吧。 产品需求:希望上部导航栏中的指示器宽度略大于文字宽度; 技术方案:TabLayout配合ViewPager; 问题分析: 原生TabLayout的指示器宽度等于每个tab的宽度,远大于 tab内文字标题的宽度。 原因分析: TabLayout(TL)继承自HorizontalScrollView,其只能添原创 2017-07-19 10:33:52 · 7932 阅读 · 0 评论 -
简单优雅的使用tablayout和viewpager打造导航栏
又是很久没写博客了,当然之前只写过一篇。本来想着坚持写呢,可是发现这里的博客审核需要挺长时间,于是乎又不怎么想写了。 今天带来的是一种导航栏的简单优雅的一种实现方式。就导航栏的实现方式的发展来看,先后主要经历了: 1--tabhost; 2--radiogroup--viewpager 3--自定义horiozationScrollview 4--tablayout+viewpa原创 2016-06-01 23:23:36 · 4452 阅读 · 0 评论 -
Android 开发者必知必会的权限管理知识
导语 感觉分析的挺全面,故转载,有小细节删改,原文请点击: 原文在这里本文主要讲解了Android 权限管理方面几个点: Android 权限背景知识; 权限检查及权限兼容; 跳转到app管理权限页面 一、Android 权限背景知识提到Android 权限管理,业内人士都知道Google 在Android 6.0时提出了运行时权限管理机制,在Android 6.0之前,所申请的权限只需要在And转载 2017-08-08 10:51:52 · 807 阅读 · 2 评论 -
安卓中扩展数据结构的探究解析
数据结构是编程工作的一项基本功,虽然现在很多应用程序的开发工作不会涉及数据结构的设计和实现,但是往往绕不开数据结构的使用,特别在一些特殊需求下,对数据结构的理解显得更为重要。安卓应用的开发自然也会涉及一些数据结构的使用,由于其开发语言是Java,大体上来说,数据结构的很多使用场景仍在Java的集合框架之内。不过安卓自有其特殊的地方,在这些场景下,源码中是扩展了一些数据结构来进行优化,但还是基于Jav原创 2017-08-17 15:40:18 · 777 阅读 · 0 评论