界面布局方式:
LinearLayout,线性布局,水平或者垂直方向摆放UI组件
AbsoluteLayout,绝对布局,指定UI组件的确切位置,不灵活,不建议使用
TableLayout,表格布局,以行和列的方式摆放UI组件
RelativeLayout,相对布局,指定UI组件相对于彼此之间如何定位
FrameLayout,帧布局,可以用来显示单个UI组件的占位符,在显示帧动画方面很有用
ScrollView,滚动布局,是一种特殊类型的FrameLayout,可以使用户滚动显示一个占据的空间大于物理显示的列表
度量单位:
dp,与密度无关的像素,当在布局中指定视图尺寸时,推荐使用dp或dpi,使用dp确保了无论屏幕密度如何,视图总是会以正确的比例显示,这是因为Android会根据屏幕的密度自动缩放视图的尺寸
sp,与比例无关的像素,推荐用于指定字体大小
pt,磅,1磅=1/72英寸
px,像素,不建议使用该单位,用户界面在不同屏幕尺寸的设备上可能不能正确呈现
dp转换为px:
实际像素=dp*(dpi/160),其中dpi可以是120(低密度),160(中等密度),240(高密度),320(超高密度)
适应屏幕方向的变化:
横屏和竖屏的用户界面适配
可以用来保存Activity状态信息的3个方法:
onPause():当一个Activity被终止或转入后台时都会触发这一方法
onSaveInstanceState():当一个Activity被终止或转入后台时都会触发这一方法(与onPause()方法一样),但与onPause()方法不同的是,当Activity从栈中卸载时(如用户按下Back按钮)不会触发onSaveInstanceState()方法,这是因为后面无须恢复其状态,可通过一个Bundle对象保存状态信息
onRetainNonConfigurationInstance():当一个Activity由于配置改变(如屏幕方向的变化,键盘是否可用等)将要被销毁时会触发这一方法,此方法返回一个Object类型,它几乎允许返回任何数据类型
Action Bar:
Action Bar上的应用程序图标、Activity名称和动作项
以编程方式创建用户界面
用户界面的事件监听:
Activity层面,重写相关方法
视图层面,匿名类和匿名内部类