#控件属性
1. TextView的属性
属性设置 | 值 |
---|---|
android:id="" 控件的id | |
android:layout_width="" 控件的宽度 | warp_content:文本多宽,控件就多宽。在androidStudio中该属性不好用,会自动换行。 math_parent:铺满当前父类控件。2.3api之后添加的属性。 fill_parent:铺满当前父类控件。2.3api版本之前提那家的属性。 也可以用数值+单位’dp’,进行更改。 |
android:layout_height="" 控件的高度 | 同宽度的值。 |
android:text="" 文本内容 | |
android:textsize="" 文本大小 | 也可以用数值+单位’sp’,进行更改。 |
android:textColor="" 文本颜色 | #FFFFFF |
android:background="" 控件背景 |
2. EditText的属性
在TextView的基础上增加了个别属性:
属性设置 | 值 |
---|---|
android:hint="" 提示文本 | |
android:textColorHint="" 提示文本颜色 | #FFFFFF |
android:inputType="" 输入文本类型 |
3. ImageView
属性设置 | 值 |
---|---|
android:src="" 内容图像 | @drawable/ic_launcher |
android:background="" 背景图像(背景色) | @drawable/ic_launcher #000 |
imageView.setBackgroundResource(isChecked?R.mipmap.meimei:R.mipmap.ic_launcher); | //如果状态为true,则图片为R.mipmap.meimei,false为R.mipmap.ic_launcher |
4. Button
属性设置 | 值 |
---|---|
android:text="" | 值 |
android:background="" 背景图像(背景色) | @drawable/ic_launcher #000 |
5. ImageButton
在Button的基础上(除了text属性)增加了:
属性设置 | 值 |
---|---|
android:src="" | @drawable/ic_launcher 图片地址 |
res中的引用
属性 |
---|
android:text="@String/button_name" |
配置 |
在values/Strings文件中配置: <>String name="button_name"登录<>/String |
原因 |
所有res文件夹下的文件夹都会在gen/R.java文件中生成对应的值,所以我们可以用这种形式可以对其进行调用。 |
src和background的区别
src |
---|
图片不会随着控件的高和宽进行变化。 |
background |
图片会随着控件的高和宽进行变化。 |
所有控件都有点击事件OnCLickListener()
监听事件
- 匿名内部类
- 独立类的实现
- 实现接口的方式来实现
View是所有控件的父类
1. 在logcat中输出
Log.i(“tag”, “紫宸:你的按钮被点击了!!!”);
2. 设置视图的透明度为0.5f。0为不显示,1为全部显示。
view.setAlpha(0.5f);
3. 提示
Toast.makeText(MainActivity.this,“按钮被点击了”,1).show();
4. 滚动的TextView
属性设置| 值
-------- | —
android:ellipsize=“marquee”|多出的文字以"…"代替省略的部分
android:singleLine=“true”|只在一行上输出
android:focusable=“true”|实现滚动
android:focusableInTouchMode=“true”|配合上面的属性实现滚动
5.AutoCompleteTextView
特有属性|
-------- |
1>功能:动态匹配输入的内容,如百度搜索引擎当输入文本时可以根据内容显示匹配的热门信息。|
2>独特属性:android:completionThreshold=“2”,设置输入字符时自动匹配。|
3>使用:看下面的代码片↓㊦
|
//搜索引擎文本框
private AutoCompleteTextView acTextView;
//模拟搜索次数最多的关键字
private String[] res = {"zichen1","zichen2","zichen3","zichen4","zichen5","zichen6","leishao1","leishao2","leishao3","leishao4","leishao5","leishao6"};
acTextView = findViewById(R.id.acTextView);
//上下文对象(如果不是在改点击事件之后,可以简写为this),布局(这是一个他自己生成的布局),资源(用户搜索次数最多的关键字的数据)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,res);
//给acTextView绑定适配器
acTextView.setAdapter(adapter);
6. MultiAutoCompleteTextView
特有属性 |
---|
1>功能:可支持多个值,在多次输入的情况下,分别用分隔符分隔开。例如发邮件或者发短信时的收件人 |
2>独特属性:android:completionThreshold="2" 设置多少字符是自动匹配。 |
3>设置分隔符:mtxt.setTokenizer(new MultiCompleteTextView.CommaTokenizer()); |
7. ToggleButton
特有属性 |
---|
1.什么是ToggleButton:只有开关两种状态,并且每种状态都可以设置一个显示的文本。 |
android:checked="true" true默认为开的状态,false为关的状态。默认为false |
android:textOff="关" |
android:texton="开" |
toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
/**
* 根据状态进行改变
* @param toggleButtonView 可以监听所有的ToggleButton
* @param isChecked 判断当前按钮的状态
*/
@Override
public void onCheckedChanged(CompoundButton toggleButtonView, boolean isChecked) {
//如果状态为true,则图片为R.mipmap.meimei,false为R.mipmap.ic_launcher
viewToggleState.setBackgroundResource(isChecked?R.mipmap.meimei:R.mipmap.ic_launcher);
}
});
8. CheckBox
属性 | 值 |
---|---|
android:checked=“false” | 默认为false |
//此时多个CheckBox被点击时调用该方法,即可实现被点击的效果。
当前类 implements CompoundButton.OnCheckedChangeListener 接口
checkBox.setOnCheckedChangeListener(当前类名.this);
checkBox1.setOnCheckedChangeListener(当前类名.this);
/**
* 根据状态进行改变
* @param toggleButtonView 可以监听所有的CheckBox
* @param isChecked 判断当前按钮的状态
*/
@Override
public void onCheckedChanged(CompoundButton checkBoxView, boolean isChecked) {
//如果状态为true,则图片为R.mipmap.meimei,false为R.mipmap.ic_launcher
String text = checkBoxView.getText().toString();
Log.i(text);
}
9. RadioGroup(多个RadioButton)
布局代码
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"/>
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="女"/>
</RadioGroup>
java代码
radioGroup = findViewById(R.id.radioGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@SuppressLint("WrongConstant")
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch(i){
case R.id.radioButton1:
Log.i("tag","男");
break;
case R.id.radioButton2:
Log.i("标志","女");
break;
default:
break;
}
}
});
10. LinearLayout(线性布局)
属性 | 含义 |
---|---|
android:orientation=“vertical” | 该属性决定他自雷控件的排布方式(vertical:垂直;horizontal:水平) |
android:gravity=“center” | 该属性决定他子类的xy的位置(center_vertical垂直居中;center_horizontal:水平居中;center:水平居中;right:右边;left:左边;bottom:下边) |
android:layout_weight=“2” | 将布局分为2分,占其中的2分,例如高度为match_parent,则占得分数成反比;warp_content,按比例分割 |
11. RelativeLayout(相对布局)
12. FrameLayout(帧布局)
13. AbsoluteLayout(绝对布局)
1>AbsoluteLayout又叫做坐标布局,可以直接指定子元素的绝对位置。
2>由于手机屏幕尺寸差别比较大,使用绝对定位的适应性会比较差。
属性 | – |
---|---|
android:layout_x=“30dip” | 控制当前子类控件的x位置 |
android:layout_y=“40dip” | 控制当前子空间的y位置 |
14. TableLayout
TableLayout表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。
属性 | - |
---|---|
android:layout_column=“1” | 该控件显示在第二列 |
android:layout_span=“2” | 该控件占据两列 |