1、布局:
一个Activity相当于一个手机屏幕
默认和手机屏幕的宽高相同
LinearLayout、RelativeLayout等布局继承了ViewGroup,ViewGroup是View的子类,可以容纳其他的视图,属于
容器视图
TextView
1)LinearLayout:线性布局
默认方向是水平方向:每个视图单独占据一列,第二个视图的起始位置是第一个视图的结束位置
垂直方向:每个视图单独占据一行,试图和视图紧挨着
属性值: match_parent 匹配上一级 、 wrap_content 包裹内容
相对布局指定布局的方向:orientation:方向...指定布局方向属性
vertical :垂直方向
horizontal:水平方向
padding:设置的视图中的内容和本视图的边儿的间距
layout_margin:设置的本视图相对于周围视图的间距
控件的一些属性:
textSize:指定显示文本的大小
text:文本显示内容
颜色的表示方式:
RGB(红绿蓝):每一位上的数是一个十六进制的数,组合起来表示颜色,范围:000-fff
RRGGBB:每两位表示一种颜色,范围:000000-ffffff
ARGB:A代表alpha 表示透明度 0表示完全透明,f表示完全不透明
AARRGGBB:A同样代表alpha 表示透明度 00表示完全透明,ff表示完全不透明
比重属性的设置:
layout_weight:表示分配比重的属性
weight后面的属性值就表示要分配的属性:
其分配的原则是:在布局当中,首先满足没有设置weight属性的控件要求.
然后将该布局中的剩下的空余空间,按照控件的weight属性值进行相加得到和n,然后分成n等份,
最后,每个控件的weight属性值是m,所以,相应的控件所占的空间就是m/n。
另外,对于分配比重的视图,
如果是水平布局:
1)如果layout_width="wrap_conent",比重越大,分配的宽度就越大
2)如果layout_width="match_parent",比重值越大,分配的宽度就越小
总结:为了避免这样的情况出现,记不住该设置哪一个,所以直接设置layout_width="0dp";简单又快捷
如果是垂直布局
1)如果layout_height="wrap_content",比重越大,分配的高度就越大
2)如果layout_height="match_parent",比重越大,分配的高度就越小
总结:同样为了避免这样的情况出现,记不住该设置哪一个,所以直接设置layout_height="0dp";简单快捷
位置布局属性:
layout_gravity:设置是本视图相对于上一级图的显示位置 指的是视图的显示位置
gravity:本视图中的内容相对于本视图的显示位置 指的是内容的显示位置
layout_margin:指定空间与周围其他视图的间距
padding:指定显示内容相对于自己空间边框的间距
2、TextView:
设置链接;android:autoLink=""可以有多个值
android:singleLine=""设置单行显示
android:ellipsize=""设置省略号出现的位置
实现跑马灯滚动效果:
android:fosusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimt="3"滚动的次数
默认情况下:TextView的focusable,focusableInTouchmode两个属性的值都是false
focusable:针对按键的
focusableInTouchMode:针对屏幕触摸的
focusable的值为true是focusableInTouchMode起作用的前提条件
单行显示文本 android:singleLine="true"
android:ellipsize="" 在开始,中间,结束 位置显示省略号
3、Button:
顺带着Toast的用法
4、EditText:可编辑文本框
hint:提示用户需要输入的内容
inputType:限制用户输入数据的类型,其作用是帮助输入法确定显示对应类型的键盘
5、checkedBox:复选框。
checked属性表示是否被选中
onClick属性表示被选中时执行的方法
在代码中如何判断复选框是否被选中呢?
boolean flag = ((Checked)v).isChecked();
如果flag是true,就表示复选框被选中了
对于为复选框(Checked)添加监听事件监听其状态是否发生变化时,采用的监听方式是:
checkedBox1.setOnCheckedChangeListener(new OnCheckedChangeListener(){});
其实仅仅是方法名有些不同而已,监听原理以及处理方法都是一致的,也是相通的.
只是有些小不同的是:
实现监听接口复写方法时;会有两个参数.
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked)
{
//1第一个参数传递的是被点击的多选框的控件对象
int checkedBoxId = buttonView.getId();
//2第二个参数表示的该被点击的对象是否被选中
if(isChecked)
{
//被选中了的处理方式
}
else
{
//没有被选中的处理方式
}
}