TextView 和 EditText 的应用和区别:
TextView:显示文本框(显示静态文本)
EditText:输入文本框(输入文本)
在Activity中需要获取一个id是bookName的TextView控件对象,
使用findViewById方法获取一个View对象,参数为控件的id,同时还需要把View对象强制转换成相应的类型
一般情况下,布局属性与对象的setXXX方法一一对应,
比如设置字体颜色,在xml中属性是android:textColor,
而在Activity中则是setTextColor方法
设置EditText的android:inputType属性可以限制文本输入类型比如
android:inputType="textPassword"为设置输入格式为密码格
android:inputType="phone"为设置输入格式为拨号键盘
是显示图片的一个控件
ImageView控件:
A:android:src="@drawable/ic_launcher"--->ImageView的内容图像
B:android:background="@drawable/ic_launcher" --->ImageView背景图片
C:ardroid:background="#00ff00" --->ImageView的RGB颜色
android:orientation="vertical" -->布局内垂直摆放
- 共有的特征
都可以作为一个按钮产生点击事件
一般不在activity_main.xml中直接使用中文,习惯在strings.xml文件中先声明然后在activity_main.xml中通过android:text="@string/buttonname"来使用
监听事件实现的几种写法:
- 匿名内部类的实现
onc关键字调用自己独立类实现的onclick方法。(android studio)
Toast.makeText(MainActivity.this,"bt1要执行的逻辑", 1).show();
Log.i("tag","父类的onclick事件");
设置透明度:view.setAlpha(0.5f);
public class MainActivity extends AppCompatActivity implements View.OnClickListener
android:singleLine="true"//使其只能单行
android:ellipsize="marquee"//去掉省略号
android:focusable = "true"//使其循环
android : focusableInTouchMode = "true"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
实现三个构造函数;
复写isfocued方法,返回true(默认都有有焦点,平常只有一个有焦点在 第一行上)
使用自定义的类,方法是用包名和自定义类名代替TextView(src下的包名+类名)
单位:
px / dp /dip
推荐使用dp
文字推荐使用sp
1.功能:
动态匹配输入的内容,如百度搜索引擎输入文本时可以根据内容显示匹配的热门信息
2.独特属性:
android:completionThreshold="2" --->设置输入多少字符时自动匹配
AutoCompleteTextView是像百度搜索框那样的,
MultiAutoCompleteTextView像qq邮箱收件人,可以多次输入和检索那样的
MultiAutoCompleteTextView控件:
独特属性:
android:completionThreshold="2" -->设置输入多少字符时自动匹配
设置分隔符
mtxt.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
mltv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
android:checked="true"
android:textOff="关"
andriod:textOn="开"
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:chrck="false"
android:text="男"
使用onCheckedChange(...)方法监听CheckBox的状态改变事件
如果想自定义CheckBox的样式应该设置style属性
如果想CheckBox默认被选中,则需要设置android:checked="true"
RadioButton按下去就起不来,不适合单独使用
RadioGroup和RadioButton控件:
android:orientation={
"vertical-->垂直排布"
"horizontal-->水平排布"
}
决定当前RadioGroup中RadioButton以什么形式排列
vertical是垂直排列,horizontal是水平排列
一、TextView 显示文本框
二、AutoCompleteTextView
自动匹配输入内容-:completionThreshold=“1”设置输入的几字节自动匹配
三、MultiAutoCompleteTextView
自动匹配输入内容,可支持选择多个内容,可多选
layout_gravity调整该布局相对父布局的位置
gravity是调整该布局中子布局的位置
LinearLayout常用的两个属性:
使控件水平或垂直排布
当作为父layout的LinearLayout的属性为androidrientation="vertical" 的时候,android:layout_gravity="?"这里设为横向的时候才能生效。比如:left,right,center_horizontal等
当作为父layout的LinearLayout的属性为androidrientation="horizental" 的时候,android:layout_gravity="?"这里设为纵向的时候才能生效。比如:top,bottom,center_vertical等;
有一个比较特殊的是center,不管是横向还是纵向的时候,它总有一个方向起作用
水平的LinearLayout要从左边开始依次放置布局,所以设置TextView的layout_gravity属性为right不起作用
相对布局的属性(子类控件在RelativeLayout中常用到得属性(相对父容器的一个位置)):
1. android:layout_alignParentLeft="true" 子类控件相对当前父类容器靠左边
2. android:layout_alignParentTop="true" 子类控件相对父类容器靠上边
3. android:layout_marginLeft="41dp" 子类控件距离父类容器左边的距离
4. android:layout_marginTop="33dp" 子类控件距离父类容器上边的距离
5. android:layout_centerInParent="true" 子类控件相对父类容器即水平居中又垂直居中
6.android:layout_centerHorizontal="true" 子类控件相对父类容器水平居中
7.android:layout_centerVertical="true" 子类控件相对父类容器垂直居中
第一类:属性值为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 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离
android:layout_margin="40dp"
android:layout_marginLeft="40dp"
android:layout_marginTop="40dp"
android:layout_marginRight="40dp"
android:layout_marginBottom="40dp"
android:layout_below="@+id/button1" 该控件位于给定id控件(button1)的底部
android:layout_torightOf="@+id/button1" 该控件位于给定id控件的右边
android:layout_above="@+id/button1" 该控件位于给定id控件的上面
android:layout_toLeftOf="@+id/button1" 该控件位于给定控件的左边
android:layout_alignBaseline="@+id/button1" 该控件的内容与给定id控件的内容在一条线上
android:layout_alignBottom: 该控件的底部边缘与给定id控件的底部边缘对齐
android:layout_alignLeft: 该控件的左边缘与给定id控件的左边缘对齐
android:layout_alignRight: 该控件的右边缘与给定id控件的右边缘对齐
android:layout_alignTop: 该控件的顶部边缘与给定id控件的顶部对齐
android:gravity:是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左部。
android:layout_gravity:是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。同样,当我们在Button按钮控件中设置android:layout_gravity="left"属性时,表示该Button按钮将位于界面的左部。
@+id是在R.java中添加id,@id表示引用现有id
toLeftOf是在左边,toRightOf是在右边
android:gravity="center_horizontal"
A是设置子布局中内容居中
android:gravity="center_vertical|left "
B是子布局中内容左侧居中
android:layout_gravity="center_vertical|left"
C是子布局相对父布局左侧居中
layout_centerInParent是设置子布局相对父布局居中
应该是与android:layout_gravity="center_vertical|center_horizontal"类似
1、所有放在布局里的控件,都按照层次堆叠在屏幕的左上角;
2、后加进来的控件覆盖前面的控件;
3、由1和2确定:帧布局没有gravity,以及layout_gravity属性;
4、可以在控件中使用layout_gravity定义控件的放置方式
B帧布局中先添加的布局在下面
android:foreground(设置前景图,在所有子视图的前面)
android:background(设置背景)
android:keepScreenOn(保持屏幕唤醒)
android:foregroundGravity(设置前景图的位置)
AbsoluteLayout(绝对布局)又可以叫做坐标布局,可以直接指定子元素的绝对位置(xy)
由于手机屏幕尺寸差别比较大使用绝对定位的适应性会比较差,在屏幕的适配器上有缺陷
android:layout_x="**dp" 控制当前子类控件的x位置
android:layout_y="**dp" 控制当前子类控件的y位置
屏幕的(0,0)点在屏幕左上角位置
绝对布局中 X,Y值越大位置会靠右下
TableLayout表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。
TableLayout的属性(全局属性):
1.android:layout_column="1" -->该控件显示在第2列
2.android:layout_span="2" -->该控件占据2列宽
布局:线性布局,相对布局,帧布局,绝对布局,还有表格布局
开发中主要用线性布局和相对布局。
表格布局用于计算机布局等!
帧布局主要用于页面加载,霓虹灯等
绝对布局不怎么用