一、编写程序界面
《一》.通过编写XML来编写程序的界面(最基本的方式)
《二》.常用控件的使用方法:
.TextView:
1.Android最简单的控件,主要用于在界面显示一段文本信息。
android:layout_width=“match_parent” 控件的宽度
android:layout_height=“wrap_content” 控件的高度
android:text=“Hello World!” 控件的文本
match_parent、wrap_content、fill_paren共3种属性值,match_parent与fill_paren相同。
match_parent:表示当前控件的大小与父布局的大小一样,由父布局决定控件的大小。
wrap_content:表示当前的控件大小能够刚好包含里面的东西,由父布局决定控件的大小。
2.
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!"
android:gravity="center_horizontal|center_vertical"
android:textSize="24sp"
android:textColor="#00ff00"
/>
《1》android:gravity=“center_horizontal|center_vertical” 指定文字的对齐方式。
对齐方式值为:top bottom left right center
center效果与center_vertical|center_horizontal(垂直、水平方向居中)相同。
《2》 android:textSize=“24sp"指定文字大小,在Android中文字大小使用sp作为单位。
《3》android:textColor=”#00ff00"指定文字的颜色
Button:
系统会对Button中的英文字母自动进行大写转换。不想要这种效果可以加 android:textAllCaps属性:android:textAllCaps=“false”
1、在MainActivity中为Button的点击事件注册一个监听器。有两种写法
第一种:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=findViewById(R.id.button_1);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button_1:
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle(“This id progressDialog”);
progressDialog.setMessage(“我是一个比较消耗的对话框”);
progressDialog.setCancelable(true);
progressDialog.show();
break;
default:
break;
}
}
}
第二种:
public class ThirdActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.third_layout);
Log.d("ThirdActivity","this id is"+getTaskId());
//直接退出程序
Button button1 = findViewById(R.id.button_3);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityCollector.finishAll();
android.os.Process.killProcess(android.os.Process.myPid());
}
});
}
}
EditText
EditText是程序用于和用户进行交互的另一种重要的控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。
1、 android:hint="this is edittext"指定了一段提示性的文字
2、android:maxLines="2"指定了EditText的最大行数为两行,输入文字超过两行文本就会向上滚动。
ImageView
ImageView是用与在界面上展示图片的一个控件。图片通常放在“drawable”开头的目录下,我们要在目录下新建一个drawable-xhdpi目录(有分辨率,默认的drawable没有分辨率),把图片复制到该目录当中。
1、android:src="@drawable/img_1"引用图片。图片宽高未知,将控件的宽高都设定为wrap_content
ProgressBar
ProgressBar用于在界面上显示一个进度条,表示我们正在加载数据。
1、android:visibility="visible"表示控件可见性,有3个属性值。
visible可见性默认控件可见性就是他
invisible不可见但是他仍然占据着原来的位置和大小,可以理解为透明
gone表示控件不可见,而且不占据任何屏幕空间。
使用setVisibility()可以传入View.VISIBLE View.INVIDIBLE View.GONE这3种属性值来控制控件的可见性
AlertDialog
AlertDialog可以在当前的界面弹出一个对话框,对话框至于所有的界面元素之上的,能够屏蔽其他空间的交互能力。
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button_1:
//点击按钮弹出对话框
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle(“This id dialog”);
builder.setMessage(“你确定要删除吗”);
builder.setCancelable(false);
builder.setPositiveButton(“OK”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton("Canle", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
break;
default:
break;
}
}
1、通过AlertDialog.Builder创建一AlertDialog得实例,设置对话框的标题、内容、可否取消等。
2、通过 setPositiveButton()为对话框设置确认按钮的点击事件,调用 setNegativeButton()设置取消按钮的点击事件。
3、调用show()将对话框显示出来。
PriogressDialog
ProgressDialog与AlertDialog有点类似,都可以弹出一个对话框,都能屏蔽1其他的空间的交互能力。不同的是ProgressDialog是一个进度条,一般用于表示当前操作比件耗时
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button_1:
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle(“This id progressDialog”);
progressDialog.setMessage(“我是一个比较消耗的对话框”);
progressDialog.setCancelable(true);
progressDialog.show();
break;
default:
break;
}
}
1、创建一个ProgressDialog 对象,设置标题、内容、可否取消等属性。show()将ProgressDialog 显示相互来。
2、 progressDialog.setCancelable(true);传入false表示当前的对话框不能通过Back键取消。你需要自己设置,调用 progressDialog.dismiss()方法来关闭对话框。
Button与EditText、ImageView、ProgressBar、AlertDialog、ProgressDialog等控件的结合使用如下:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText editText;
private ImageView imageView;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=findViewById(R.id.button_1);
//点击按钮获取editText的控件中文本内容
editText=findViewById(R.id.edit_text);
//点击按钮获取imageView的控件图片 做切换图片
imageView=findViewById(R.id.image_view);
//点击按钮获取进度条
progressBar=findViewById(R.id.progress_bar);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button_1:
//点击按钮获取editText的控件中文本内容
// String inputText=editText.getText().toString();
// Toast.makeText(MainActivity.this,inputText,Toast.LENGTH_SHORT).show();
//点击按钮切换图片
// imageView.setImageResource(R.drawable.img_2);
//点击按钮进度条显示与隐藏进行切换
// if(progressBar.getVisibility()==View.GONE){
// progressBar.setVisibility(View.VISIBLE);
// }else{
// progressBar.setVisibility(View.GONE);
// }
// //
// int progress=progressBar.getProgress();
// progress=progress+10;
// progressBar.setProgress(progress);
//点击按钮弹出对话框
// AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
// builder.setTitle(“This id dialog”);
// builder.setMessage(“你确定要删除吗”);
// builder.setCancelable(false);
// builder.setPositiveButton(“OK”, new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
//
// }
// });
// builder.setNegativeButton(“Canle”, new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
//
// }
// });
// builder.show();
//点击按钮弹出对话框 按Back键退出对话框
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle(“This id progressDialog”);
progressDialog.setMessage(“我是一个比较消耗的对话框”);
progressDialog.setCancelable(true);
progressDialog.show();
break;
default:
break;
}
}
}