March
25th,
2017
original post at hetaodie.github.io
目录
单位相关概念
- dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
- px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
- pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
- sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
Java代码中使用资源
- Java 文字:txtName.setText(getResources().getText(R.string.name));
- 图片:imgIcon.setBackgroundDrawableResource(R.drawable.icon);
- 颜色:txtName.setTextColor(getResouces().getColor(R.color.red));
- 布局:setContentView(R.layout.main);
- 控件:txtName = (TextView)findViewById(R.id.txt_name);
XML代码中使用
通过@xxx即可得到,比如这里获取文本和图片:
margin与padding的区别
初学者对于这两个属性可能会有一点混淆,这里区分下: 首先margin代表的是偏移,比如marginleft = "5dp"表示组件离容器左边缘偏移5dp; 而padding代表的则是填充,而填充的对象针对的是组件中的元素,比如TextView中的文字 比如为TextView设置paddingleft = "5dp",则是在组件里的元素的左边填充5dp的空间! margin针对的是容器中的组件,而padding针对的是组件中的元素,要区分开来!
Android中有六大布局
分别是: LinearLayout(线性布局),RelativeLayout(相对布局),TableLayout(表格布局) FrameLayout(帧布局),AbsoluteLayout(绝对布局),GridLayout(网格布局)
LinearLayout
RelativeLayout
TableLayout
FrameLayout
FrameLayout(帧布局)可以说是六大布局中最为简单的一个布局,这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件!后续添加的控件会覆盖前一个!虽然默认会将控件放置在左上角,但是我们也可以通过layout_gravity属性,指定到其他的位置。<br />
FrameLayout的属性很少就两个<br />
前景图像:永远处于帧布局最上面,直接面对用户的图像,就是不会被覆盖的图片。<br />
- 两个属性:
- android:foreground:*设置改帧布局容器的前景图像
- android:foregroundGravity:设置前景图像显示的位置
GridLayout
ConstraintLayout
相当于iOS的autoLayout。通过四个约束来完成布局,减少复杂界面的层级关系。
数据操作
map使用
list使用
activity 跳转
- 跳转不需要参数时:
- 跳转需要参数时(数据少时)
- 跳转需要参数时(数据多时)
- 获取传递过来的数据
点击去github下载AVAudioRecorderDemo