//此系列博文是《第一行Android代码》的学习笔记,若有错漏,欢迎指正!android
Android 给咱们提供了大量的 UI控件,下面咱们简单试试几种经常使用的控件。ide
1、TextView布局
在布局文件中加入TextView元素:学习
1 <TextView android:text="This is TextView!"
2 android:gravity="center"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 android:textSize="34sp"
6 android:textColor="#000000"/>
代码的意思显而易见,id是当前控件的惟一标识符,text是所要显示的文本内容,width和height能够控制控件的宽和高,通常有三种可选值: match_parent、fill_parent 和 wrap_content,其中 match_parent 和fill_parent的意义相同。match_parent 表示让当前控件的大小和父布局的大小同样。wrap_content 表示让当前控件的大小可以恰好包含住里面的内容,也就是由控件内容决定当前控件的大小。咱们也能够对控件的宽和高指定一个固定的大小,可是这样作有时会在不一样手机屏幕的适配方面出现问题。TextView的文本是默认左上角对齐的,但咱们可使用 android:gravity来指定文字的对齐方式, 可选值有 top、 bottom、 left、 right、 center等 , 可 以 用 “ | ” 来 同 时 指 定 多 个 值 , 这 里 我 们 指 定 的 "center" , 效 果 等 同 于"center_vertical|center_horizontal",表示文字在垂直和水平方向都居中对齐。另外textSize用于指定字体大小,textColor用于指定字体颜色。此时的PreView界面是这样的:字体
2、Buttonui
Button是程序用于和用户进行交互的一个重要控件,它可配置的属性和 TextView 是差很少的:this
1 <Button 2 android:id="@+id/button"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 android:text="Button" />
在主活动中咱们可使用匿名类为button注册一个监听器,固然也可使用实现接口的方式。spa
3、EditText3d
EditText 是程序用于和用户进行交互的另外一个重要控件,它容许用户在控件里输入和编辑内容,并能够在程序中对这些内容进行处理,应用场景广泛。咱们在布局文件中加入下列代码:code
1 <EditText 2 android:id="@+id/edit_text"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 android:hint="Type something here"
6 android:textSize="24sp"
7 android:maxLines="2"
8 />
其中的hint用于在输入框里显示一些提示性的文字,而后一旦用户输入了任何内容,这些提示性的文字就会消失。而maxLines则是限定了 EditText的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而 EditText 则不会再继续拉伸。效果以下:
输入文本超过两行时:
天然,咱们能够结合 EditText 与 Button 来完成一些功能,好比当想要经过点击按钮来获取EditText中输入的内容,能够加入下列代码:
1 public class MainActivity extends Activity implements OnClickListener { 2 private Button button; 3 private EditText editText; 4
5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 button = (Button) findViewById(R.id.button); 10
11 editText = (EditText) findViewById(R.id.edit_text); 12 button.setOnClickListener(this); 13 } 14
15 @Override 16 public void onClick(View v) { 17 switch (v.getId()) { 18 case R.id.button: 19 String inputText = editText.getText().toString(); 20 Toast.makeText(MainActivity.this, inputText,Toast.LENGTH_SHORT).show(); 22 break; 23 default: 24 break; 25 } 26 } 27 }
此时编辑完代码后,按下button,屏幕下方就会弹出所编辑好的文本内容。
4、ImageView
ImageView是用于在界面上展现图片的一个控件,使用这个控件之时,咱们须要先把一张图片放到 drawable文件夹下(我放的图片是pic.jpg),而后加入下列代码:
1 <ImageView 2 android:id="@+id/image_view"
3 android:layout_width="wrap_content"
4 android:layout_height="wrap_content"
5 android:src="@drawable/pic"
6 />
其中src语句是对图片资源的引用。因为图片的宽和高都是未知的,因此将 ImageView的宽和高都设定为 wrap_content,这样保证了无论图片的尺寸是多少均可以完整地展现出来。如今运行程序后即可看到图片展现在屏幕上。
5、ProgressBar
ProgressBar用于在界面上显示一个进度条, 表示咱们的程序正在加载一些数据。
1 <ProgressBar 2 android:id="@+id/progress_bar" 3 android:layout_width="match_parent" 4 android:layout_height="wrap_content" 5 style="?android:attr/progressBarStyleHorizontal" 6 android:max="100" 7 />
咱们使用style将其指定成水平进度条,并经过 android:max 属性给进度条设置一个最大值,而后咱们即可以在代码中动态地更改进度条的进度。在此以前,咱们须要用到 Android控件的可见属性。 全部的Android控件都具备这个属性, 能够经过android:visibility进行指定,可选值有三种,visible、invisible 和 gone。visible 表示控件是可见的,这个值是默认值。invisible 表示控件不可见,可是它仍然占据着原来的位置和大小。gone 则表示控件不只不可见,并且再也不占用任何屏幕空间。咱们能够经过代码来设置控件的可见性,使用的是setVisibility()方法,能够传入 View.VISIBLE、View.INVISIBLE 和 View.GONE三种值。如今咱们修改MainActivity的代码以下:
1 public class MainActivity extends Activity implements View.OnClickListener { 2 private Button button; 3 private ProgressBar progressBar; 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.content_main); 8 button = (Button) findViewById(R.id.button); 9 progressBar = (ProgressBar) findViewById(R.id.progress_bar); 10 button.setOnClickListener(this); 11 } 12 @Override 13 public void onClick(View v) { 14 switch (v.getId()) { 15 case R.id.button: 16 int progress = progressBar.getProgress(); 17 progress = progress + 25; 18 progressBar.setProgress(progress); 19 break; 20 default: 21 break; 22 } 23 } 24 }
代码中咱们设定progressbar的最大值为100,每按一次按钮其值增长25,图为按了两次按钮的效果图:
6、AlertDialog
AlertDialog能够在当前的界面弹出一个对话框, 这个对话框是置顶于全部界面元素之上的,可以屏蔽掉其余控件的交互能力,所以通常 AlertDialog 都是用于提示一些很是重要的内容或者警告信息。
咱们加入代码以下:
1 @Override 2 public void onClick(View v) { 3 switch (v.getId()) { 4 case R.id.button: 5 AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this); 6 dialog.setTitle("This is Dialog"); 7 dialog.setMessage("Something important."); 8 dialog.setCancelable(false); 9 dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { 10 @Override 11 public void onClick(DialogInterface dialog, int which) { 12 } 13 }); 14 dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 15 @Override 16 public void onClick(DialogInterface dialog, int which) { 17 } 18 }); 19 dialog.show(); 20 break; 21 default: 22 break; 23 } 24 }
首先经过 AlertDialog.Builder 建立出一个 AlertDialog的实例,而后能够为这个对话框设置标题、内容、能否取消等属性,接下来调用 setPositiveButton()方法为对话框设置肯定按钮的点击事件,调用 setNegativeButton()方法设置取消按钮的点击事件,最后调用 show()方法将对话框显示出来。
运行效果以下:
控件的学习在此先告一段落,其余的有须要能够在网上搜一下。
//End.