Drawable:
drawable是抽象类。包括图片,色块,画板,背景。
drawable-ldpi 存放低分辨率图片。drawable-hdpi 高分辨率。drawable-xxhdpi 超高分辨率。
Android:src=”@drawable/image” 即可使用
Shape:
形状图形。圆角,矩形等常见几何图形,可以自定义画内置图形。
属性有: <size>尺寸 <stroke>描边 <corner>填充圆角
<Solid>填充颜色 <padding>间隔 <gradient>渐变
九宫格图片:
9.png (图片拉伸的时候特定的区域不会发生图片失真)
界面上边的黑线指的是水平方向拉伸区域。
界面左边的黑线指的是垂直方向拉伸区域。
界面下边的黑线指的是该图片作为控件背景时,内部文字左右边界放在黑线内。
界面右边的黑线指的是该图片作为控件背景时,内部文字上下边界放在黑线内。
状态列表图形:
根据状态(是否被点击)显示不同图形
<item android:state_pressed="true" android:drawable="@drawable/text"/> 选中
<item android:drawable="@drawable/text1"/> 不选中
复选框CheckBox:
<CheckBox
android:id="@+id/ck_system"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="这是系统的CheckBox"/>
开关按钮Switch:
Switch控件新添加的XML属性说明如下:
textOn:设置右侧开启时的文本。
textOff: 设置左侧关闭时的文本。
Track: 设置开关轨道的背景。
Thumb: 设置开关标识的图标。
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_weight="1"
android:padding="5dp"
android:text="这是一个switch开关的文本"/>
<Switch
android:layout_width="80dp"
android:layout_height="30dp"
android:layout_gravity="end"
android:padding="5dp" />
单选按钮RadioButton:
<RadioGroup
android:id="@+id/rg_gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_male"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="男"/>
<RadioButton
android:id="@+id/rb_female"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="女"/>
</RadioGroup>
编辑框EditText:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background=”@null” //取消边框
android:maxLength="16" //最大输入文字
android:hint="请输出用户名" //提示文字
android:inputType="text"/> //输入类型
焦点变更监听器:(用于验证性)
et_phone = findViewById(R.id.et_phone); //获取到号码数据
EditText et_password=findViewById(R.id.et_password);
et_password.setOnFocusChangeListener(this); //焦点变更监听方式
//检测焦点做判断
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus)
{String phone= et_phone.getText().toString();
//手机号码不足11位
if (TextUtils.isEmpty(phone)||phone.length()<11)
{ et_phone.requestFocus();
Toast.makeText(this,"请输入11位手机号码",Toast.LENGTH_SHORT).show();
}
}
}
文本变化监听器:
addTextChangedLinstener接口
有三个方法 ① beforeTextChange 文本改变前
② onTextChanged 文本改变过程中
③afterTextChanged 文本改变之后
弹出类提醒对话框AlertDialog:
public void onClick(View view) {
//创建提醒对话框构建器
AlertDialog.Builder builder =new AlertDialog.Builder(this);
builder.setTitle("尊敬的用户");
//设置对话框的内容文本
builder.setMessage("你真的要卸载我嘛?");
//设置对话框的肯定按钮文本及其点击监听
builder.setPositiveButton("残忍卸载", (dialogInterface, i) -> {
tv_alert.setText("我滚了,你照顾好自己");
});
//设置对话框否定按钮文本及监听
builder.setNegativeButton("我再想想",(dialogInterface, i) -> {
tv_alert.setText("你不离,我不弃");
});
//根据建造器构建提醒对话框对象
AlertDialog dialog = builder.create();
//显示提醒对话框
dialog.show(); }
日期对话框DatePickerDialog:
<DatePicker
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:datePickerMode="spinner"
android:calendarViewShown="false"/>
时间对话框TimePickerDialog:
<TimePicker
android:id="@+id/tp_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
仅为个人笔记记录使用