(Android第一行代码)UI开发
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(Android第一行代码)UI开发相关的知识,希望对你有一定的参考价值。
常见控件的使用方法
1.TextView(主要用于在界面上显示一段文本信息)。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
//表示文字在垂直和水平方向都居中对齐
android:gravity="center"
//指定文字的大小
android:textSize="24sp"
//指定文 字的颜色
android:textColor="#00ff00"
android:text="This is TextView" />
</LinearLayout>
2. Button(我们可以在 MainActivity中为 Button的点击事件注册一个监听器)
3.EditText(它允许用户在控件里输入和编 辑内容,并可以在程序中对这些内容进行处理)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
……
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
// 在输入框里显示一些提示性 的文字
android:hint="Type something here"
/>
// android:maxLines指定了 EditText的最大行数为两行这样当输入的内容超过 两行时,文本就会向上滚动,而 EditText则不会再继续拉伸,
android:maxLines="2"
</LinearLayout>
4.我们还结合使用 EditText 与 Button 来完成一些功能,通过点击按钮来获取 EditText中输入的内容。
public class MainActivity extends Activity implements OnClickListener {
private Button button;
private EditText editText;
@textView
//在oncreat方法中获取textView和Button空间,为Button添加点击事件消息。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
editText = (EditText) findViewById(R.id.edit_text);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
//获取textView控件中的内容,并用Toast输出。
String inputText = editText.getText().toString();
Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();
break;
default:
break;
}
5.ImageView(ImageView是用于在界面上展示图片的一个控件)
- drawable 文件夹下放一张 ic_launcher.png图片
- 修改 activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
……
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
//这里使用 android:src属性给 ImageView指定了一张图片。
android:src="@drawable/ic_launcher"
/>
</LinearLayout>
- 动态地更改 ImageView中的图片我准备了另外一张 图片,jelly_bean.png,将它复制到 res/drawable-hdpi目录下,然后修改 MainActivity的代码,
public class MainActivity extends Activity implements OnClickListener {
private Button button;
private EditText editText;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
editText = (EditText) findViewById(R.id.edit_text);
//获取imageView控件。
imageView = (ImageView) findViewById(R.id.image_view);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.button:
//在点击事件里将图片动态的改为jelly_bean.png
imageView.setImageResource(R.drawable.jelly_bean);
break;
default:
break;
}
}
}
6.ProgressBar进度条(ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据。)
- 在界面上显示一个进度条
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
……
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
重新运行程序,会看到屏幕中有一个圆形进度条正在旋转
- 让进度条在数据加载完成时消失
使用:android:visibility 进行指定让进度条在数据加载完成时消失可选值有三种,visible、invisible 和 gone
visible 表示控件是可见的:
invisible表示控件不可见,
gone则表示控件不仅不可见, 而且不再占用任何屏幕空间
修改 MainActivity中的代码
public class MainActivity extends Activity implements OnClickListener {
private Button button;
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);
progressBar = (ProgressBar) findViewById(R.id.progress_bar);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
//我们通过 getVisibility()方法来判断 ProgressBar 是否可见,如果 可见就将 ProgressBar隐藏掉,如果不可见就将 ProgressBar显示出来
if (progressBar.getVisibility() == View.GONE) {
progressBar.setVisibility(View.VISIBLE);
} else {
progressBar.setVisibility(View.GONE);
}
break;
default:
break;
}
}
}
- 给 ProgressBar指定不同的样式,刚刚是圆形进度条,通过 style属性 可以将它指定成水平进度条。
修改 activity_main.xml中的代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
……
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
//指定成水平进度条后
style="?android:attr/progressBarStyleHorizontal"
//给进度条设置一个最大值
android:max="100"
/>
</LinearLayout>
- 然 后在 MainActivity代码中动态地更改进度条的进度。
public class MainActivity extends Activity implements OnClickListener {
……
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
//每点击一次按钮,我们就获取进度条的当前进度,然后在现有的进度上加 10 作为更新 后的进度。
int progress = progressBar.getProgress();
progress = progress + 10;
progressBar.setProgress(progress);
break;
default:
break;
}
}
}
7.AlertDialog: AlertDialog可以在当前的界面弹出一个对话框
AlertDialog 都是用于提示一些非常重要的 内容或者警告信息。比如为了防止用户误删重要内容,在删除前弹出一个确认对话框。
public class MainActivity extends Activity implements OnClickListener {
……
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
//先通过 AlertDialog.Builder创建出一个 AlertDialog的实例.
AlertDialog.Builder dialog = new AlertDialog.Builder
(MainActivity.this);
//然后为这个对话框设 置标题、内容、可否取消等属性
dialog.setTitle("This is Dialog");
dialog.setMessage("Something important.");
dialog.setCancelable(false);
// 接下来调用 setPositiveButton()方法为对话框设置确定按钮 的点击事件,
dialog.setPositiveButton("OK", new DialogInterface.
OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
//调用 setNegativeButton()方法设置取消按钮的点击事件。
dialog.setNegativeButton("Cancel", new DialogInterface.
OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
//最后调用 show()方法 将对话框显示出来。
dialog.show();
break;
default:
break;
}
}
}
8. ProgressDialog : ProgressDialog 会在对话框中显示一个进度条,一般是 用于表示当前操作比较耗时,让用户耐心地等待。
public class MainActivity extends Activity implements OnClickListener {
……
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
ProgressDialog progressDialog = new ProgressDialog (MainActivity.this);
progressDialog.setTitle("This is ProgressDialog");
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(true);
progressDialog.show();
break;
default:
break;
}
}
}
以上是关于(Android第一行代码)UI开发的主要内容,如果未能解决你的问题,请参考以下文章
第一行代码第二版(郭霖著)笔记之第三章(UI开发的点点滴滴)