这是我参与【第四届青训营】笔记创作活动的第三天
一、本堂重点内容:
介绍了常规以及高级UI编程
二、详细知识点介绍:
1、安卓UI组件
有哪些:输入框组件EditView、按钮组件Button、文本组件TextView、播放器组件、图片组件ImagView、列表组件
2.文本框 TextView 显示文本
用法举例
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text_view_id"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/hello" />
</LinearLayout>
常用属性
属性 说明
android:text 文字内容
android:textSize 文字大小
android:textStyle 文字格式(normal, bold, italic, bold|italic)
android:textColor 文字颜色
2.输入框 EditText 是TextView的子类
用法举例
<EditText
android:id="@+id/plain_text_input"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:inputType="text"/>
属性 说明
android:hint 提示文字
android:inputType 输入类型,值为:text, number, textPassword…,多类型用|分割。
android:drawableLeft 输入框左侧(其他边也有相应的属性)绘制对象,值通常为一个可绘制资源文件,如@mipmap/xx
android:drawablePadding 可绘制对象的内边距
android:lines 输入框高多少行,值为整数。
3.Button 是TextView的子类
使用举例
<Button
android:id="@+id/button_id"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/self_destruct" />
可设置点击事件
public class MyActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_layout_id);
final Button button = findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Code here executes on main thread after user presses button
}
});
}
}
4.图片按钮 Image Button ImageView的子类
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/my_image"
/>
</LinearLayout>
5.单选框 RadioButton
使用举例
<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton android:id="@+id/radio_pirates"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pirates"
android:onClick="onRadioButtonClicked"/>
<RadioButton android:id="@+id/radio_ninjas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ninjas"
android:onClick="onRadioButtonClicked"/>
</RadioGroup>
ViewGroup是LinearLayout的子类,所以ViewGroup默认是垂直的线性布局,可以用android:orientation属性来改变线性方向。
可以使用andorid:onClick属性来设置单选框的点击事件,代码可以如下:
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.radio_pirates:
if (checked)
// Pirates are the best
break;
case R.id.radio_ninjas:
if (checked)
// Ninjas rule
break;
}
}
6.多选框 CheckBox
应用举例
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<CheckBox android:id="@+id/checkbox_meat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/meat"
android:onClick="onCheckboxClicked"/>
<CheckBox android:id="@+id/checkbox_cheese"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cheese"
android:onClick="onCheckboxClicked"/>
</LinearLayout>
8.计时器 Chronometer
应用举例
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="#efefef">
<Chronometer
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format="%s"
android:id="@+id/chronometer"/>
</RelativeLayout>
三、实践练习例子:
如上举例
四、课后个人总结:
总体而言简单的项目是可以独立完成的,但是对于逻辑复杂的应用还需要再打磨打磨