1. Android 界面设计被称为______。
答案:布局
2. Android中常见的布局包括______、______ 、______ 、______ 、______ 五种。
3. 什么是dp,px,sp?
必考:Android应用程序结构:
4. 相对布局分为______ 、______ 两种。
5.相对父容器布局的使用。在相对布局中添加一个Button,在父容器中水平居中,Button顶端与父容器上边框对齐,Button上边缘距父容器上边缘64dp
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<!-- Button控件
margin:距离
alignParentTop:对齐顶部
centerHorizontal:中心水平-->
<Button
android:id = "@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop = "64dp"
android:text="@string/button1"
/>
</RelativeLayout>
6. 相对控件布局的使用。添加一个Button2位于Button1右下方,并且设置Buttton2上边缘距Button1 38dp。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="64dp"
android:text="@string/button1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_marginTop="38dp"
android:layout_toRightOf="@+id/button1"
android:text="@string/button2" />
</RelativeLayout>
7. 线性布局可以分为______ 、 ______ 两种。
8. 水平线性布局的使用
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation = "horizontal"
</LinearLayout
9.垂直线性布局的使用
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">//修改布局-当前为垂直
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button2" />
</LinearLayout>
10. Android常用基本控件有______ 、 ______ 、 ______ 、 ______ 、 ______ 、 ______ 。
11. 在布局文件中声明的控件,只负责界面显示。如果要想使用控件实现某些具体功能,就需要在Activety中编辑代码实现。实现过程如下:
12. 文本类控件主要用于在界面中显示文本, 包含______ 、______两种。
13. Button类控件主要包括______ 、 ______ 、 ______ 、 ______ 、 ______ 五种。
14. 为Button注册监听的两种办法
layout 布局代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button1"
/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="60dp"
android:onClick="click"
android:text="@string/button2" />
</RelativeLayout>
逻辑代码
package com.example.button;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
Button button1,button2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button)findViewById(R.id.button1);
button2 = (Button)findViewById(R.id.button2);
button1 .setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
setTitle("Button1注册成功");
}
});
}
public void click(View v) {
setTitle("Button2注册成功");
}
}
15. ToggleButton的使用
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="1500dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textOn="开"
android:textOff="关"/>
</RelativeLayout>
16. RadioButton的使用:选择坐飞机还是坐轮船
布局代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="请选择:" />
<RadioGroup
android:id="@+id/rg1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RadioButton
android:id="@+id/rb1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="火车" />
<RadioButton
android:id="@+id/rb2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="飞机" />
</RadioGroup>
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="您选择的是:" />
</LinearLayout>
关键逻辑代码
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
if (checkedId == R.id.rb1) {
textView.setText("您选择的是:" + radioButton1.getText());
}else {
textView.setText("您选择的是:" + radioButton2.getText());
}
}
});
17.时钟控件包括______和______,前者______时钟,只显示分和秒,后者显示______时钟,可精确到秒
18. 进度条有______ 、______ 、______ 、______ 四种。
19. ProgressBar 的属性表
属性名称 | 属性说明 |
---|---|
style | 设置进度条样式 |
max | 进度条的最大进度值 |
progress | 第一进度值 |
secondaryProgress | 次要进度值 |
20. ProgressBar 的使用
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="36dp"
android:max="100"
android:progress="75"
android:secondaryProgress="50" />
<ProgressBar
android:id="@+id/progressBar2"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/progressBar1"
android:layout_marginTop="24dp" />
<ProgressBar
android:id="@+id/progressBar3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/progressBar2"
android:layout_marginTop="76dp" />
<ProgressBar
android:id="@+id/progressBar4"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/progressBar3"
android:layout_marginTop="62dp" />
</RelativeLayout>
21. SeekBar的使用
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="93dp"
android:thumb="@android:drawable/btn_star_big_on"
android:max="100"
android:progress="25"
/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/seekBar1"
android:layout_marginLeft="40dp"
android:text="当前进度值为:25"/>
</RelativeLayout>
关键代码:
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
textView.setText("褰撳墠杩涘害鍊硷細" + progress);
}
});
22. RatingBar的使用
布局代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RatingBar
android:id="@+id/ratingBar1"
style="?android:attr/ratingBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="14dp"
android:numStars="5"
android:rating="4.0"
android:stepSize="0.5"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/ratingBar1"
android:layout_marginTop="20dp"
android:text="受欢迎度:4.0颗星"/>
</RelativeLayout>
逻辑代码如下:
ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
// TODO Auto-generated method stub
textView.setText("受欢迎度为:" + rating + "颗星");
}
});
23. 菜单分为3类:______ 、______ 和______ 。
24. 对话框主要包括______ 、______ 、______ 、______ 、______ 、______ 等
25. 提示对话框AlertDialog的使用
逻辑代码如下
package com.example.alertdialog;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
public class AlertDialogActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setIcon(android.R.drawable.ic_dialog_info);
builder.setTitle("AlertDialog");
builder .setMessage("你确定删除吗");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
setTitle("确定");
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
setTitle("取消");
}
});
builder.show();
}
}
26. 什么是Toast
略
27. Toast的使用(必考!)
28. 开发Notification,主要涉及哪三个类?