Bitmap的加载和Cache

本章的主题是Bitmap的加载和Cache,主要包含三个方面的内容。首先讲述如何有效地加载一个Bitmap,这是一个很有意义的话题,由于Bitmap的特殊性以及Android对单个应用所施加的内存限制,比如16MB,这导致Bitmap加载的适合很容易出现内存溢出。下面这个异常信息在开发种应该经常遇...

2018-04-25 01:35:41

阅读数 105

评论数 0

Android的线程和线程池

本章的主题时Android中的线程和线程池。线程在Android中式一个很重要的概念,从用途上来说,线程分为主线程和子线程,主线程主要处理和界面相关的事情,而子线程则往往用于执行耗时操作。由于Android的特性,如果在主线程中执行耗时操作那么就会导致程序无法及时地响应,因此耗时操作必须放在子线程...

2018-04-20 11:07:44

阅读数 64

评论数 0

Android的消息机制

本章所讲述的内容是Android的消息机制。提到消息机制读者应该都不陌生,在日常开发中不可避免地要涉及这方面地内容。从开发地角度来说,Handler是Android地消息机制的上层接口,这使得在开发过程中只需要和Handler交互即可。Handler的使用过程很简单,通过它可以轻松地将一个任务切换...

2018-04-19 11:59:59

阅读数 104

评论数 0

四大组件的工作过程

本章讲述Android中的四大组件的工作过程。说到四大组件,开发者都再熟悉不过了,它们是Activity、Service、BroadcastReceiver和ContentProvider。如何使用四大组件,这不是本章关心的,毕竟这时开发者都熟悉的内容,本章按照如下的逻辑来分析Android的四大...

2018-04-18 16:10:24

阅读数 171

评论数 0

理解Window和WindowManager

Window表示一个窗口的概念,在日常开发中直接接触Window的机会并不多,但是在某些特殊时候我们需要在桌面上显示一个类似悬浮窗的东西,那么这种效果就需要用到Window来实现。Window是一个抽象类,它的具体实现是PhoneWindow。创建一个Window是很简单的事情,只需要通过Wind...

2018-04-16 21:59:17

阅读数 63

评论数 0

Android动画深入分析——使用动画的注意事项

通过动画可以实现一些比较绚丽的效果,但是在使用过程中,也需要注意一些事情,主要分为下面几类。 1.OOM问题 这个问题主要出现在帧动画中,当图片数量较多且图片较大时就容易出现OOM,这个在实际开发中尤其注意,尽量避免使用帧动画。 2.内存泄漏 在属性动画中有一类无线循环的动画,这类动画需要...

2018-04-13 00:23:53

阅读数 224

评论数 0

Android动画深入分析——属性动画

属性动画是在API11中引入的特性,和View动画不同,它对作用对象进行了扩展,属性动画可以对任何对象做动画,甚至还可以没有对象。除了作用对象进行扩展以外,属性动画的效果也得到了加强,不再像View动画那样只能支持四种简单的变换。属性动画中有ValueAnimator、ObjectAnimator...

2018-04-13 00:14:26

阅读数 155

评论数 0

Android动画深入分析——View动画的特殊使用场景

在上节中我们介绍了View动画的四种形式,除了这四种形式外,View动画还可以在一些特殊的场景下使用,比如在ViewGroup中可以控制子元素的出场效果,在Activity中可以实现不同Activity之间的切换效果。1.LayoutAnimationLayoutAnimation作用于ViewG...

2018-04-12 18:10:04

阅读数 64

评论数 1

Android动画深入分析——View动画

Android的动画可以分为三种:View动画、帧动画和属性动画,其实帧动画也属于View动画的一种,只不过它和平移、旋转等常见的View动画在表现形式上略有不同而已。Vie为动画通过对场景里的对象不断做图像变换(平移、缩放、旋转、透明度)从而产生动画效果,它是一种渐进式动画,并且View动画支持...

2018-04-12 17:27:19

阅读数 53

评论数 0

Android的Drawable

本章所讲述的话题是Android的Drawable,Drawable表示的是一种可以用在Canvas上进行绘制的抽象概念,它的种类有很多,最常见的颜色和图片都是一个Drawable。在本章中,首先描述Drawable的层次关系,接着介绍Drawable的分类,最后介绍自定义Drawable相关的知...

2018-04-12 14:44:50

阅读数 64

评论数 0

理解RemoteViews——RemoteViews的意义

上节我们分析了RemoteViews的内部机制,了解RemoteViews的内部机制可以让我们更加清楚通知栏和桌面小工具的底层实现原理,但是本章对RemoteViews的探讨并没有停止,在本节中,我们将打造一个模拟的通知栏效果,并实现跨进程的UI更新。首先有两个Activity分别运行在不同的进程...

2018-04-11 17:31:31

阅读数 77

评论数 0

理解RemoteViews——RemoteViews的内部机制

RemoteViews的作用时再其他进程中显示并更新View的界面,为了更好地理解它地内部机制,我们先来看一下它的主要功能。首先看一下它的构造方法,这里只介绍一个最常用的构造方法:public RemoteViews(String packageName, int layoutId),它接受两个参...

2018-04-11 16:03:43

阅读数 132

评论数 0

理解RemoteViews——RemoteViews的应用

本章所讲述的主题时RemoteViews,从明天可以看出,RemoteViews应该是一种远程View,那么什么是远程View呢?如果说远程服务可能比较好理解,但是远程View的确没有听说过,其实它和远程Service是一样的,RemoteViews表示的是一个View结构,它可以再其他进程中显示...

2018-04-10 17:58:23

阅读数 134

评论数 0

View的工作原理——自定义View

本节详细介绍自定义View相关地知识。自定义View地作用不用多说,这个都应该清楚,如果想要做出绚丽地界面效果仅仅靠系统地控件式远远不够的,这个时候就必须通过自定义View来实现这些绚丽的效果。自定义View式一个综合的技术体系,它设计View的层次结构、事件分发机制和View的工作原理等技术细节...

2018-04-10 12:28:50

阅读数 106

评论数 0

View的工作原理——View的工作流程

View的工作流程主要是指measure、layout、draw这三大流程,即测量、布局和绘制,其中measure确定View的测量宽高,layout确定View的最终宽高和四个顶点的位置,而draw则将View绘制到屏幕上。1.measure过程measure过程要分情况来看,如果只是一个原始的...

2018-04-09 22:42:32

阅读数 97

评论数 0

View的工作原理——理解MeasureSpec

为了更好地理解View地测量过程,我们还需要MeasureSpec。从名字上来看,MeasureSpec看起来像“测量规格”或者“测量说明书”,不管怎么翻译,它看起来都好像是或多或少地决定了View的测量过程。通过源码可以发现,MeasureSpec的确参与了View的measure过程。那么,M...

2018-04-09 10:38:43

阅读数 80

评论数 0

View的工作原理——初识View和DecorView

在本章中主要介绍两方面的内容,首先介绍View的工作原理,接着介绍自定义View的实现方式。在Android的知识体系中,View扮演着很重要的角色,简单来理解,View是Android在视觉上的呈现。在界面上Android提供了一套GUI库,里面有很多控件,但是很多时候我们并不满足于系统提供的控...

2018-04-09 09:32:13

阅读数 97

评论数 0

View的事件体系-View的滑动冲突

本节开始介绍View体系中一个深入的话题:滑动冲突。相信开发Android的人都会有这种体会:滑动冲突实在是太坑人了,本来从网上下载的demo运行得好好的,但是只要出现滑动冲突,demo就无法正常工作了。那么滑动冲突是如何产生的呢?其实在界面中只要内外两层同时可以滑动,这个时候就会产生滑动冲突。如...

2018-04-08 12:51:44

阅读数 87

评论数 0

View的事件体系-View的事件分发机制

上面介绍了View的基础知识以及View的滑动,本节将介绍View的一个核心知识点:事件分发机制。事件分发截止不仅仅是核心知识点更是难点,不少初学者甚至中介开发者面对这个问题是都会觉得很困惑。另外View的另一大难题滑动冲突,它的解决办法的理论基础就是事件分发机制,因此掌握好View的事件分发机制...

2018-04-03 23:31:48

阅读数 177

评论数 1

View的事件体系-弹性滑动

知道了View的滑动,我们还要知道如何实现View的弹性滑动,比较生硬的滑动过去,这种方式的用户体验太差了,因此我们要实现渐进式滑动。那么如何实现弹性滑动呢?其实实现方法有很多,但它们都有一个共同思想:将一次大的滑动分成若干次小的滑动,并在一个事件内完成,弹性滑动的具体实现方式有很多,比如通过Sc...

2018-04-02 15:41:29

阅读数 57

评论数 0

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