疯狂安卓Android自学笔记
开发者必备自学工具:
谷歌搜索:www.yundou.info
Android原版开发文档 (英文) Doc http://www.phoned.cn/docs/reference/android/view/View.html
Android原版开发文档 (英文) Doc 下载地址 http://www.phoned.cn/docs.zip 由于谷歌被封杀网页相关谷歌API无法调用打开会非常卡建议断网或FQ后使用。
2015-12-24
View 组件:
绝大多数的android基础控件都存在包android.widget,android.view 及其子包中。
所有的UI基础组件都继承了View类,view是一个空白的panel 板。
ViewGroup 具有view的功能,通常用作view的容器,而其又是抽象类,为了减少方法复写通常使用ViewGroup的子类作为容器。
ViewGroup通过它自身的内部类LayoutParams,MarginLayoutParams的XML方法来控制放在其容器内部的组件布局。
开发者可以通过继承View类并实现其方法,自定义个性化的UI组件。通常重写View构造函数这种基本的方式实现。
继承自View的类重写其方法,该类生成的对象将按照重写的方法来生成相应的形状或者效果。
如果使用R引用控件或文件时无法找到已经创建的控件时,查看引入的R文件是否是当前包的R文件。
//////////////////////////////////////////////////////////////////////////////////////////////////////
2015年12月25日
再探布局:
LinearLayout 流式布局,组件可按照横向或纵向先后顺序排列,组件之间会相互推挤,由于屏幕大小有限,有时有的控件会推挤到屏幕外而无法看到该控件。
GridView网格布局,指定行列后添加View控件、。
TableLayout 表格布局,无需事先指定行列,添加行数后,在行控件中添加子控件。
FrameLayout 帧布局,各个控件会按照加载顺序会叠加在一起。
RelativeLayout 关系布局,各个控件的位置由其他控件的位置作为参考来摆放。
AbsoluteLayout 绝对布局,控件的位置由开发者自己决定,严格的按照x,y坐标来摆放控件。
//////////////////////////////////////////////////////////////////////////////////////////////////////
2015年12月26日
深入Activity
众多的Activity组成Activity栈,当前活动的Activity处于栈顶。
通过继承关系图可知:Activity间接的继承了context,contextwrapper,contextthemewrapper等基类。
什么是回调:在特定时刻会发生的调用行为,例如回调函数。A调用B去处理相关事务,B在处理事务时需要A提供一个处理事务的函数C,C则称为回调函数,为什么A不直接去处理而让B去处理,在处理过程中B可能不只是处理A的事务,还处理其它类型的事务,在处理各种类型的事务的过程中底层某些实现逻辑是一致的,所以封装了B,减少了冗余的底层实现代码,对于一个具有通用性质的程序架构来说,程序完成整个应用的通用功能,流程,但是在特定的点上,需要执行开发者自定义的与软件业务相关的代码,这段代码”因人而异”而通用程序构架无法完成这段代码。
程序内部逻辑执行完成后需要调用该段由开发者自定义的函数或代码来实现特定的功能,通常有两种方式完成这段功能代码的编写:一种是以接口的新式,复写其回调方法以嵌入自己的代码。另一种是通过继承基类的抽象或非抽象的类方法,复写其抽象或非抽象类方法完成代码嵌入。
//////////////////////////////////////////////////////////////////////////////////////////////////////2015年12月27日
理解intent相关
Android使用同一的intent模型来封装模块间的启动,为各个模块组件提供了统一的编程模型。
ComponentName(A1,A2);A
参数A1代表A1所对应的包,A1可以是String、Context。
参数A2代表组件,A2可以是String、class。
Intent属性 action和category是一个设置静态字符串的方法,action方法代表intent需要完成的行为(打开,查看等),category方法为action提供附加信息。
Intent设置了category和action结合的方法后只是定义了intent的行为和该行为附加信息,并没有指定执行这一行为的对象,通过intent-filter来控制执行对象,在Manifest中配置Activity的Intent-filter,该Activity就有可能被启动。
通过intent-filter来指定动作的执行者,从而切断了行为与执行者之间的粘合,行为和执行者之间是可插拔的关系,如此设计降低程序的耦合度。
//////////////////////////////////////////////////////////////////////////////////////////////////////
2015年12月29日(补一章)
Android资源操作
Android目录下的res目录中存放的资源会自动在R文件中生成索引,在代码中可以直接引用。Assets也是存放资源的目录,存放的是android无法直接访问的原生资源,需要使用AssetsManager已二进制流读取。
在XML代码中使用@符号引用的标识符号除了系统定义的资源名称还外可以在XML资源文件中使用name标签自定义资源名称。
尺寸,颜色,字符串资源,定义在res下的value文件夹中,使用@符号引用资源时格式为例如:@string/title即引用了value下的string文件下name为title的item的值。
XML资源中的数组,在XML根标签<resource>下定义的三种数组形式:<array>普通型<string-array>字符串型<integer-array>整形数组。
根标签<layer-list>是LayerDrawable的XML声明格式,其内部包含的是Drawable对象(drawable=XXX),可以包含多个Drawable。绘制顺序根据索引大小依次绘制。
五大资源特效控件 StateListDrawable, LayerDrawable, ShapeDrawabe, ClipDrawable, AnimationDrawable。
StateListDrawable 根标签<seloctor>设置控件事件发生变化时起作用。
LayerDrawable 根标签<Layer>根据Drawable对象绘制图形。
ShapeDrawable 根标签<Shape>设置控件视觉效果,例如 圆角,填充,边线,渐变。
ClipDrawable 根标签<Clip>截取图片特定位置的片段。
AnimationDrawable 根标签<set>设置一个动画资源。
原始XML:保存一些初始化参数或者小量的配置信息,大量信息可以考录使用SQLite。
要求:是一份语法符合XML规范的文件。
通过XML解析类XmlResourceParser的方法getXml(int id)获取XmlPullParser对象来进行XML相关操作。
使用InputStream类的方法openRawResource方法可获取XML输入流。
菜单资源./res/menu 根标签<menu>通过设置其内嵌的元素项来设置菜单的内容。
通过重写上下文菜单方法onCreateContextMenu可以将菜单资源文件载入作为一个上下文菜单,也可以用于其他地方,手法类似。
Android中定义theme主题资源。
控件风格控制:根标签<resource>通过子标签<style>添加属性。子标签<style>可通过name指定样式名称,parent指定继承项。
Activity主题控制:Activity主题XML格式类似风格控制的写法,item项多采用系统函数android:WindowXXX书写的形式。
通过activity的setTheme方法可为单个activity设置主题,统一设置主题可在manifest中设置。
Attribute属性资源,根标签<resource>,attr为子元素,declare-styleable为属性的集合。
代码中通过AttributeSet方法获取属性。
Attribute对对象的属性进行托管,规范化对象属性。
使用属性时通过在项目XML布局中导入attribute所在的包。命名空间:xmlns:xxx.android.com/apk/res/packge
Android程序国际化的主要类:ResourceBundle,locale,翻译文件以KEY-VAR键值对形式存放,通过native2veascii将其转化为Unicode格式。
Android程序国际化也可以通过res下建立不同语言命名的文件夹(value-zh-rCN)的String.xml键值对(<string name=”ok”>好</string>)来实现。、
//////////////////////////////////////////////////////////////////////////////////////////////////////
图形与图像处理(主要靠动手)
Bitmap代表一张位图,BitmapDrawable封装了Bitmap对象。
访问android程序自身以外的路径中的图像需要需要使用BitmapFactory来解析创建bitmap对象。
创建bitmap对象往往需要占用设备内存,bitmap对象方法isRecycle()方法判断是否已经回收recycle()方法则强制回收。
继承view组件重写onDraw方法即可实现绘画。
Canvas代表画布,paint代表画笔。使用它们各自的方法可以实现绘画不同效果。
Path代表任意多条子线链接而成的任意图形。它可以预先在view上将N个点链接成一条路径,然后使用canvas的drawPath方法沿路径绘制图形。
PathEffect定义绘制的效果。
Matrix是android提供的一个矩阵工具类,结合其它API来控制图形组件的变换。
//////////////////////////////////////////////////////////////////////////////////////////////////////
2016年1月1日(补两章)
Android数据存储于IO流
SharedPreferences 接口以键值对的形式:用于保存少量信息,例如配置信息,软件相关外存。
SharedPreferences提供了一系列对外存文件的读写操作。
SharedPreferences内部接口Editor提供了数据的写入和清除方法。
SharedPreferences本身是一个接口,无法使用new方法生成其对象,强行使用new方法生成其对象则会写成内部类形式。使用context.getSharedPreferences();获取对象。
Context提供了一组读取当前应用程序的数据文件夹下文件的IO文件流:openFileInput openFileOutput。
读写SD卡文件:Environment getExternalStorageState();判断SD卡状态。
GetExternalStorageDirectory()获取SD卡目录。
使用FileInputStream FileOutputStream FileReader FileWriter方法对文件进行读写。
后记:学习至此只看书然而并没有什么卵用,光领会内容是不够的,工科资料需要边领会边实战,还有如果不能坚持的话前面干得再多也将会很快忘记。2016年1月2日
疯狂安卓Android自学笔记的更多相关文章
- Android自学笔记:Git下载源代码
Info:做J2ME几年了,现在基本没有公司用了,是时候向Android领域进军了. 自学中,难免会有疏漏,有问题请及时提出,共同学习共同进步. 2014-10-13:初版 2014-10-14:添加 ...
- Android自学笔记:环境配置
Info: 自学Android之旅第二篇,初步学习会有疏漏,以后我会不断修改补全,直到完美. 2014-10-09:初版 2014-11-12: 重新配置了一台电脑,更新在学习robotium过程中, ...
- android自学笔记(1):android简介
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发.尚未有统一中文名称,中国大陆地区较 多人使用“安卓 ...
- android自学笔记一
android是什么我自闭不必多说,我们挑精华整理 一.android体系架构: android从下而上分为四层: (1)分别是linux操作系统及驱动(C语言实现) (2)本地代码(C/C++)框架 ...
- android 应用笔记
android 应用笔记 android 应用笔记 小书匠 Android 综合教程 Android常用技巧 安卓系统架构 安卓源码开发 安卓驱动 Linux内核 安卓应用开发 Java 教程 tic ...
- 安卓第九天笔记-Activity
安卓第九天笔记-Activity 1.创建Activity 一个界面对应一个activity 创建一个Activity 1.写一个JAVA类,继承Activity publicclass CalcA ...
- [置顶] Android开发笔记(成长轨迹)
分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...
- 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...
- 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...
随机推荐
- Base64加密解密
/// <summary> /// 实现Base64加密解密 /// </summary> public sealed class Base64 { /// <summa ...
- SQL获取前一天0:00:00至23:59:59数据
一.前言 因为我公司要做财务结算前一天0:00:00至23:59:59的数据,利用到动态拼接SQL语句 我们需要明白声明DateTime 和 Date 获取的时间格式是不一样的,所以通过此计算有利于得 ...
- myeclipse10.7破解成功 但 无法打war包 securecrt alert:integrity check error 解决方案
本次对于myeclipse10破解后,导出war包时报“SECURITY ALERT: INTEGERITY CHECK ERROR”进行了破解 只要执行完第一步的破解后,将com.genuitec. ...
- .net 判断日期格式yyyy-MM-dd hh:MM:ss的正则表达式
加上引用: using System.Text.RegularExpressions; /// <summary> /// 检查字符串是否是日期格式 /// </sum ...
- UI基础视图----UIImageView总结
UIImageView和UILabel一样,也是UIKit框架中非常常用的视图类.继承关系和UILabel完全一致(都是继承于UIView),功能也相似(用户交互都默认为关,主要用于展示),只不过UI ...
- 浅谈Windows Server APPFABRIC
hi,everyone !真的是好久好久没有update blog了,因为最近忙着备考,没有时间对<数据结构与算法>进行研究学习了.所以,blog一直未更新.today is Friday ...
- Hadoop高可用平台搭建
文章概览: 1.机器规划和预配置 2.软件安装 3.集群文件配置 4.启动集群 5.HA验证 6.注意事项 7.小结 机器规划和预配置 主机/进程 NN DN RM NM ZK(QP) ZKFC ...
- Java消息服务
什么是消息? 消息是可编程实现两端通信的机制.通常的一些消息技术如:TCP/IP Sockets.管道.文件.共享存储. Java消息服务 Java消息服务,即Java Message Service ...
- javascript 笔试题之删除数组重复元素
笔试时紧张没写出来,静下心后发现简单的要死. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" & ...
- 【7】使用css/js/html模板来实现一个注册、登录和管理的功能
分支:auth static添加文件 css文件夹: app.css 自定义css样式[*] bootstrap.min.cs bootstrap样式 compomemts文件夹: 插件用 ...