- 博客(18)
- 收藏
- 关注
原创 接口实现Fragment、Activity间互调解耦
fragment之间及Fragment与Activity互调使用接口通讯。考虑Fragment的重用,所以必须降低Fragment与Activity的耦合,而且Fragment更不应该直接操作别的Fragment,毕竟Fragment操作应该由它的管理者Activity来决定。
2016-02-24 19:31:14 1420
转载 深入理解Java的接口和抽象类
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 在了解抽象类之前,先来了解一下抽象方
2016-02-24 16:12:57 352
转载 数据存取之SQLite浅析
一、SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。 1、SQLite的特点 轻量级:SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite
2016-02-23 15:38:42 484
原创 Fragment之一:封装及生命周期
Fragment是封装逻辑代码和UI的利器,实质上就是一个重写的View,是面向对象编程的重用思想。本文讲述Fragment的生命周期,并介绍了hide,show,add,remove,replace等Fragment操作的具体生命周期,并且阐述了回退栈操作,以及fragment数据保存。
2016-02-23 08:35:20 750
原创 Handler消息(Message)传递机制详解
本文从源码及结构角度,分析Handler消息(Message)传递机制,主要包括Handler、Looper、Message、MessageQueue等之间的关联。
2015-12-16 08:44:29 4916
原创 Thread及Runnable的使用方式简介
Java里面的主线程是main函数,android里面的主线程(UI线程)是ActivityThread,Activity是运行在主线程里面的,google为了保障用户体验,规定主线程(UI界面)5s没响应就报错—ANR异常(Application not Responding),所以较为耗时的操作一般需要开启子线程完成,即Thread,Android中创建子线程有两种方法。 一
2015-12-15 16:17:47 612
原创 Android之Window、WindowManager(一):PopupWindow添加浮动窗口内部过程
通常情况下,如果想显示一个界面,首先想到的是建立一个Activity,然后所有的操作在Activity里面实现,或者是一个Dialog或者Toast。本文通过对PopupWindow的实现过程解析,指出添加界面的另外一种方式:直接用WindowManager显示添加或删除View的过程。一、PopupWindow向Window添加视图的过程PopupWindow是最简单的浮动窗
2015-07-31 18:39:32 3851
原创 Filter实现原理及内部流程
一、Filter简介 APi中对Filter的描述极为精简,就是通过用户设置的过滤条件,通过Filter内部的一系列操作(对数据的过滤处理通常通过线程异步操作)实现过滤条件,最终获得过滤后的结果。一般通过实现Filterable接口调用(自定义的)Filter。1、FilterableFilterable定义一过滤行为,利用Filter对数据进行过滤处理。Filterable通
2015-07-24 11:17:38 1568
原创 自定义控件(二):详解设置view属性内部流程
用代码实现XML布局,可以明确看出Android内部加载View的过程:1、创建view,通过setXXX方法设置view的固有属性,通过layoutparams内部类设置view相对父控件的布局属性。2、利用setContentView(view)绘制view。所以,在界面中绘制出view,实际上可以分为两个阶段,一是设置view属性并将其添加到View的层次结构中,等待androi
2015-07-20 11:05:21 1091
原创 自定义控件(一):View的测量及绘制流程、原理简介
本文简单介绍自定义控件的流程及原理,并从源码角度解读了Measure(),onMeasure(),draw(),onDraw()等方法,并实现了一个简单的显示系统媒体音量变化的自定义控件
2015-07-12 14:10:50 669
原创 Bitmap内存优化--使用BitmapFactory.options及SoftReference解决OutOfMemory问题
解决Bitmap经常出现OutOfMemory: Android手机分配给App的内存并不是无限的(即最大可用内存),而是有固定限制的, Bitmap会非常占用内存,导致OutofMemory问题,有三个策略:策略一:对bitmap进行缩放,直接降低在内存中的存储空间; 策略二:通过SoftReferences(软引用)策略; 策略三:开启线程进行异步加载图片,避免出现卡顿现象。
2015-06-30 09:02:28 743
原创 高级控件AdapterView(二):通过Observer实现数据、视图同步刷新
多条目控件AdapterView子控件,ListView,GridView等利用DataSetObserver(观察者Observer)实现数据、视图动态同步刷新的原理
2015-06-26 16:18:03 1674
原创 高级控件AdapterView(一):Adapte继承体系及BaseAdapter
Adapt是一个接口,是联通多条目控件AdaptView(ViewGroup是其父类,ListView、GridView、SpinnerView是其子类)与数据集的桥梁,主要有两个功能:1)决定多条目控件AdaptView子视图(如ListView)有多少项,即数据集有多少项;2)决定每一项如何显示,即XML视图布局和属性,属性值由数据集提供。
2015-06-26 09:59:18 969
原创 Android学习第四课:Java代码动态创建View及LayoutParams类(二)
可视化一个控件(View或ViewGroup),关键是对控件属性进行设置,确保控件能够正确显示。控件的属性可以分为两类,一类是控件本身自有属性,可以通过View.setXXX或ViewGroup.setXXX进行设置,这些属性是控件固有的;还有一类属性是控件向其父控件传递的,主要是告知父控件其自身的width,height,这些是通过ViewGroup的静态内部类View.ViewGroup.La
2015-06-23 18:46:18 1357 1
原创 Android学习第三课:I/O文件读写操作(一)
Android中“字节流”和“字符流”I/O操作梳理,主要包括InputStream/OutputStream +FilterInputStream/FilterOutputStream为代表的字节操作架构,Reader/Writer+FilterReader/FilterWriter为代表的字符流操作架构,以及字符流、字节流相互转化的InputStreamReader/OutPutStreamWriter
2015-06-20 13:26:36 1140
原创 Android学习第二课:Assets资源文件读取及AssetManager介绍
Assets资源介绍,以及AssetManager API小结
2015-06-20 11:34:44 10238
原创 Android学习第一课:自定义日志LogCat输出
对于新手来讲,调试技术是android学习的第一步,Android有强大的日志输出类Log,通过插入Log语句,如Log.i(TAG,MSG),可以方便输出需要查看的信息(String)MSG,通过在LogCat面板查看,从而准确验证程序运行是否正常。 但Log语句在方便的同时,也会导致程序各个地方都会出现散乱的Log语句,程序调试完毕后,需要一一注释掉,但若出现新的问题,这些注释语句可
2015-06-17 23:01:02 715
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人