Android常用控件

来源:互联网 发布:虚拟机ubuntu使用教程 编辑:程序博客网 时间:2024/06/05 14:51

match_parent表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小

wrap_content表示让当前控件的大小能够刚好包含住里面的内容也就是由控件内容决定当前控件的大小


TextView

TextView中的文字默认是居左上角对齐的

Android:gravity可以指定文字的对齐方式,可选值有top、bottom、left、right、center等

可以用“|”来同时指定多个值

“center”效果等同于“center_vertical|center_horizontal,表示文字在垂直和水平方向都居中对齐

android:textSize属性可以指定文字的大小 android:textColor属性可以指定文字的颜色 指定文字大小一般用sp


Button

为Button的点击事件注册一个监听器

[java] view plain copy
  1. public class MainActivity extends Activity {  
  2.       
  3.     private Button button;  
  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.         button.setOnClickListener(new View.OnClickListener() {  
  11.               
  12.             @Override  
  13.             public void onClick(View v) {  
  14.                   
  15.             }  
  16.         });  
  17.     }  
  18. }  

[java] view plain copy
  1. public class MainActivity extends Activity implements OnClickListener {  
  2.       
  3.     private Button button;  
  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.         button.setOnClickListener(this);  
  11.     }  
  12.       
  13.     @Override  
  14.     public void onClick(View v) {  
  15.         switch (v.getId()) {  
  16.         case R.id.button:  
  17.             break;  
  18.         default:  
  19.             break;  
  20.         }  
  21.     }  
  22.       
  23. }  

EditText


android:hint=""设置提示性文字

android:maxLines="2"可以指定EditText的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而EditText则不会再继续拉伸


结合使用EditText和Button

[java] view plain copy
  1. public class MainActivity extends Activity implements OnClickListener {  
  2.       
  3.     private Button button;  
  4.       
  5.     private EditText editText;  
  6.       
  7.     @Override  
  8.     protected void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10.         setContentView(R.layout.activity_main);  
  11.         button = (Button) findViewById(R.id.button);  
  12.         editText = (EditText) findViewById(R.id.et);  
  13.         button.setOnClickListener(this);  
  14.     }  
  15.       
  16.     @Override  
  17.     public void onClick(View v) {  
  18.         switch (v.getId()) {  
  19.         case R.id.button:  
  20.             String inputText = editText.getText().toString();  
  21.             Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();  
  22.             break;  
  23.         default:  
  24.             break;  
  25.         }  
  26.     }  
  27.       
  28. }  


ImageView

[html] view plain copy
  1. android:src="@drawable/ic_launcher"  

设置图片

ImageView的setImageResource()方法可以改变显示的图片

[java] view plain copy
  1. public class MainActivity extends Activity implements OnClickListener {  
  2.       
  3.     private Button button;  
  4.       
  5.     private EditText editText;  
  6.       
  7.     private ImageView imageView;  
  8.       
  9.     @Override  
  10.     protected void onCreate(Bundle savedInstanceState) {  
  11.         super.onCreate(savedInstanceState);  
  12.         setContentView(R.layout.activity_main);  
  13.         button = (Button) findViewById(R.id.button);  
  14.         editText = (EditText) findViewById(R.id.et);  
  15.         imageView = (ImageView) findViewById(R.id.iv);  
  16.         button.setOnClickListener(this);  
  17.     }  
  18.       
  19.     @Override  
  20.     public void onClick(View v) {  
  21.         switch (v.getId()) {  
  22.         case R.id.button:  
  23.             imageView.setImageResource(R.drawable.logo);  
  24. //          String inputText = editText.getText().toString();  
  25. //          Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();  
  26.             break;  
  27.         default:  
  28.             break;  
  29.         }  
  30.     }  
  31.       
  32. }  


ProgressBar

ProgressBar用于在界面上显示一个进度条


Android控件的可见属性

所有的Android的控件都具有这个属性,可以通过android:visibility进行指定

可选值有三种,visible、invisible和gone

visible表示控件是可见的,这个值是默认值,不指定android:visibility时,控件都是可见的

invisible表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了

gone则表示控件不仅不可见,而且不再占用任何屏幕空间


我们也可以通过代码来设置控件的可见性

使用setVisibility()方法,可以传入View.VISIBLE、View.INVISIBLE和View.GONE三种值


[java] view plain copy
  1. public class MainActivity extends Activity implements OnClickListener {  
  2.       
  3.     private Button button;  
  4.       
  5.     private EditText editText;  
  6.       
  7.     private ImageView imageView;  
  8.       
  9.     private ProgressBar progressBar;  
  10.       
  11.     @Override  
  12.     protected void onCreate(Bundle savedInstanceState) {  
  13.         super.onCreate(savedInstanceState);  
  14.         setContentView(R.layout.activity_main);  
  15.         button = (Button) findViewById(R.id.button);  
  16.         editText = (EditText) findViewById(R.id.et);  
  17.         imageView = (ImageView) findViewById(R.id.iv);  
  18.         progressBar = (ProgressBar) findViewById(R.id.progressBar);  
  19.         button.setOnClickListener(this);  
  20.     }  
  21.       
  22.     @Override  
  23.     public void onClick(View v) {  
  24.         switch (v.getId()) {  
  25.         case R.id.button:  
  26.             if (progressBar.getVisibility() == View.GONE) {  
  27.                 progressBar.setVisibility(View.VISIBLE);  
  28.             } else {  
  29.                 progressBar.setVisibility(View.GONE);  
  30.             }  
  31. //          imageView.setImageResource(R.drawable.logo);  
  32. //          String inputText = editText.getText().toString();  
  33. //          Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();  
  34.             break;  
  35.         default:  
  36.             break;  
  37.         }  
  38.     }  
  39.       
  40. }  


另外,我们还可以给ProgressBar指定不同的样式

刚刚是圆形进度条,通过style属性可以将它指定成水平进度条

[html] view plain copy
  1. style="?android:attr/progressBarStyleHorizontal"  
  2. android:max="100"  


动态地更改进度条的进度

[java] view plain copy
  1. int progress = progressBar.getProgress();  
  2. progress = progress + 10;  
  3. progressBar.setProgress(progress);  


AlertDialog


AlertDialog可以在当前的界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽其他控件的交互能力

因此一般AlertDialog都是用于提示一些非常重要的内容或者警告信息

比如为了防止用户误删内容,在删除前弹出一个确认对话框

[java] view plain copy
  1. AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);  
  2. dialog.setTitle("This is Dialog");  
  3. dialog.setMessage("Something important.");  
  4. dialog.setCancelable(false);  
  5. dialog.setPositiveButton("OK"new DialogInterface.OnClickListener() {  
  6.     @Override  
  7.     public void onClick(DialogInterface dialog, int which) {  
  8.     }  
  9. });  
  10. dialog.setNegativeButton("Cancel"new DialogInterface.OnClickListener() {  
  11.     @Override  
  12.     public void onClick(DialogInterface dialog, int which) {  
  13.     }  
  14. });  
  15. dialog.show();  


首先通过AlertDialog.Builder创建出一个AlertDialog的实例,然后可以为这个对话框设置标题、内容、可否取消等属性

接下来调用setPositiveButton()方法为对话框设置确定按钮的点击事件

调用setNegativeButton()方法设置取消按钮的点击事件

最后调用show()方法将对话框显示出来



ProgressDialog


ProgressDialog和AlertDialog有点类似,都可以在界面上弹出一个对话框,都能够屏蔽掉其他控件的交互能力

不同的是,ProgressDialog会在对话框中显示一个进度条,一般是用于表示当前操作比较耗时,让用户耐心地等待

[java] view plain copy
  1. ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);  
  2. progressDialog.setTitle("This is ProgressDialog");  
  3. progressDialog.setMessage("Loading...");  
  4. progressDialog.setCancelable(true);  
  5. progressDialog.show();  


注意如果在setCancelable()中传入了false,表示ProgressDialog是不能通过Back键取消掉的,这时一定要在代码中做好控制

当数据加载完成后必须要调用ProgressDialog的dismiss()方法来关闭对话框,否则ProgressDialog将会一直存在


原创粉丝点击