一、Android应用程序架构
\src 放置的为主程序、程序类。
\res 放置的时资源文件,如Icon图标,布局文件\layout和常数\values。
\AndroidManifest.xml 每个android程序中必须的文件,描述了package中的全局数据。
AndroidManifest.xml是每个android程序中必须的文件。它位于application的根目录,描述了package中的全局数据,包括了package中暴露的组件(activities, services, 等等),它们各自的实现类,各种能被处理的数据和启动位置。
此文件一个重要的地方就是它所包含的intent-filters。这些filters描述了activity启动的位置和时间。每当一个activity(或者操作系统)要执行一个操作,例如:打开网页或联系簿时,它创建出一个intent的对象。它能承载一些信息描述了你想做什么,你想处理什么数据,数据的类型,和一些其他信息。Android比较了intent对象中和每个application所暴露的intent-filter中的信息,来找到最合适的activity来处理调用者所指定的数据和操作。
二、Android应用程序类型
1) 前端Activity (Foreground Activities)
2) 后台服务 (Background Services)
3) 间隔执行Activity (Intermittent Activities)
三、Android像素单位
dp:即dip,与sp 基本类似。如果需要设置长度、高度等属性时可以使用dp 或sp。
sp:如果设置字体,需要使用sp。
px:表示屏幕实际的象素。例如,320*480 的屏幕在横向有320个象素,在纵向有480 个象素。
dp、sp、px区别:dp 是与密度无关,sp 除了与密度无关外,还与比例 无关。如果屏幕密度为160,这时dp 和sp 和px 是一样的。1dp=1sp=1px,但如果使用px 作单位,如果屏幕大小不变(假设还是3.2 寸),而屏幕密度变成了320。那么原来TextView 的宽度设成160px,在密度为320 的3.2 寸屏幕里看要比在密度为160 的3.2 寸屏幕上看短了一半。但如果设置成160dp 或160sp 的话。系统会自动将width 属性值设置成320px 的。也就是160 * 320 / 160。其中320 / 160 可称为密度比例因子。也就是说,如果使用dp 和sp,系统会根据屏幕密度的变化自动进行转换。
in:表示英寸,是屏幕的物理尺寸。每英寸等于2.54 厘米。例如,形容手机屏幕大小,经常说,3.2(英)寸、3.5(英)寸、4(英)寸就是指这个单位。这些尺寸是屏幕的对角线长度。如果手机的屏幕是 3.2 英寸,表示手机的屏幕(可视区域)对角线长度是3.2*2.54 = 8.128 厘米。读者可以去量一量自己的手机屏幕,看和实际的尺寸是否一致。
mm:表示毫米,是屏幕的物理尺寸。 pt:表示一个点,是屏幕的物理尺寸。大小为1 英寸的1/72。
像素:(建议用dp)
q px(像素):屏幕上的点。
q in(英寸):长度单位。
q mm(毫米):长度单位。
q pt(磅):1/72英寸。
q dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。
q dip:与dp相同,多用于Google示例中。
q sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。
density :值表示每英寸有多少个显示点,与分辨率是两个概念。
WQVGA屏density=120;
QVGA屏density=120;
HVGA屏density=160;
WVGA屏density=240;
当屏幕density=240时使用hdpi标签的资源当屏幕density=160时,使用mdpi标签的资源当屏幕density=120时,使用ldpi标签的资源。
三、UI常用布局方式
1)Linearlayout(线性布局)默认布局方式
2)TableLayout?(表格布局)
3)Relative Layout(相对布局)
推荐使用 相对布局比起前面两种布局方法而言更随意,用户可以将控件放在自己所希望的任何位置。
4)AbsoluteLayout(绝对布局)
不推荐使用,因为android的屏幕分化太严重了,除非是针对某一款硬件专业使用,或者有针对各种屏幕写对应的配置文件
在LinearLayout和TableLayout中常见的指令有android:id——控件指定相应IDandroid:text——控件中显示文字。注意尽量使用Strings.xmlandroid:gravity——控件中文字基本位置,如center、left、right、center_horizontal等。android:textsize——控件中字体大小,单位为pt。android:background——控件背景色android:width——控件宽度android:height——控件高度android:padding——空间内边距,指控件当中内容到空间的距离。其中有android:padding_left、android:padding_right等。android:siglelise——如果设置为真,控件内容将在同一行显示。android:margin——外边距。
相对布局Relative Layout
大体分为下面三类
第一类:属性值为true或false
android:layout_centerHrizontal 是否至于水平方向中央
android:layout_centerVertical 是否至于垂直方向中央
android:layout_centerInparent 至于父控件水平/垂直方向中央
android:layout_alignParentBottom 是否与父控件下边对齐
android:layout_alignParentLeft 是否与父控件的左边对齐
android:layout_alignParentRight 是否与父控件的右边对齐
android:layout_alignParentTop 是否与父控件的上边对齐
android:layout_alignWithParentIfMissing
第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某某上面
android:layout_above 在某某下面
android:layout_toLeftOf 将控件左边缘至于给定控件的右边
android:layout_toRightOf 将控件右边缘至于给定控件的左边
android:layout_alignTop 将控件的顶部与给定控件顶部对奇
第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 与下边的距离
android:layout_marginLeft 与左边的距离
android:layout_marginRight 与右边的距离
android:layout_marginTop 与上边的距离
转载于:https://www.cnblogs.com/niminjie/archive/2012/01/19/2326306.html
相关资源:数据结构—成绩单生成器