Android学习笔记(七)——常见控件

  //此系列博文是《第一行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 }
View Code

  代码中咱们设定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     }
View Code

   首先经过 AlertDialog.Builder 建立出一个 AlertDialog的实例,而后能够为这个对话框设置标题、内容、能否取消等属性,接下来调用 setPositiveButton()方法为对话框设置肯定按钮的点击事件,调用 setNegativeButton()方法设置取消按钮的点击事件,最后调用 show()方法将对话框显示出来。

  运行效果以下:

  

  控件的学习在此先告一段落,其余的有须要能够在网上搜一下。

 

  //End.

相关文章
相关标签/搜索