Android常用控件及其属性
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的点击事件注册一个监听器
public class MainActivity extends Activity {private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {}}); }}
public class MainActivity extends Activity implements OnClickListener {private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.button);button.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button:break;default:break;}}}
EditText
android:hint=""设置提示性文字
android:maxLines="2"可以指定EditText的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而EditText则不会再继续拉伸
结合使用EditText和Button
public class MainActivity extends Activity implements OnClickListener {private Button button;private EditText editText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.button);editText = (EditText) findViewById(R.id.et);button.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button:String inputText = editText.getText().toString();Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();break;default:break;}}}
ImageView
android:src="@drawable/ic_launcher"
设置图片
ImageView的setImageResource()方法可以改变显示的图片
public class MainActivity extends Activity implements OnClickListener {private Button button;private EditText editText;private ImageView imageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.button);editText = (EditText) findViewById(R.id.et);imageView = (ImageView) findViewById(R.id.iv);button.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button:imageView.setImageResource(R.drawable.logo);//String inputText = editText.getText().toString();//Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();break;default:break;}}}
ProgressBar
ProgressBar用于在界面上显示一个进度条
Android控件的可见属性
所有的Android的控件都具有这个属性,可以通过android:visibility进行指定
可选值有三种,visible、invisible和gone
visible表示控件是可见的,这个值是默认值,不指定android:visibility时,控件都是可见的
invisible表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了
gone则表示控件不仅不可见,而且不再占用任何屏幕空间
我们也可以通过代码来设置控件的可见性
使用setVisibility()方法,可以传入View.VISIBLE、View.INVISIBLE和View.GONE三种值
public class MainActivity extends Activity implements OnClickListener {private Button button;private EditText editText;private ImageView imageView;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.button);editText = (EditText) findViewById(R.id.et);imageView = (ImageView) findViewById(R.id.iv);progressBar = (ProgressBar) findViewById(R.id.progressBar);button.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button:if (progressBar.getVisibility() == View.GONE) {progressBar.setVisibility(View.VISIBLE);} else {progressBar.setVisibility(View.GONE);}//imageView.setImageResource(R.drawable.logo);//String inputText = editText.getText().toString();//Toast.makeText(MainActivity.this, inputText, Toast.LENGTH_SHORT).show();break;default:break;}}}
另外,我们还可以给ProgressBar指定不同的样式
刚刚是圆形进度条,通过style属性可以将它指定成水平进度条
style="?android:attr/progressBarStyleHorizontal" android:max="100"
动态地更改进度条的进度
int progress = progressBar.getProgress();progress = progress + 10;progressBar.setProgress(progress);
AlertDialog
AlertDialog可以在当前的界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽其他控件的交互能力
因此一般AlertDialog都是用于提示一些非常重要的内容或者警告信息
比如为了防止用户误删内容,在删除前弹出一个确认对话框
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);dialog.setTitle("This is Dialog");dialog.setMessage("Something important.");dialog.setCancelable(false);dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.show();
接下来调用setPositiveButton()方法为对话框设置确定按钮的点击事件
调用setNegativeButton()方法设置取消按钮的点击事件
最后调用show()方法将对话框显示出来
ProgressDialog
ProgressDialog和AlertDialog有点类似,都可以在界面上弹出一个对话框,都能够屏蔽掉其他控件的交互能力
不同的是,ProgressDialog会在对话框中显示一个进度条,一般是用于表示当前操作比较耗时,让用户耐心地等待
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);progressDialog.setTitle("This is ProgressDialog");progressDialog.setMessage("Loading...");progressDialog.setCancelable(true);progressDialog.show();
注意如果在setCancelable()中传入了false,表示ProgressDialog是不能通过Back键取消掉的,这时一定要在代码中做好控制
当数据加载完成后必须要调用ProgressDialog的dismiss()方法来关闭对话框,否则ProgressDialog将会一直存在
更多相关文章
- Android自定义控件之基本原理(一)
- 开发android机顶盒应用 事件,焦点处理
- Android(安卓)UI基础——EditText控件
- android之论setContentView(R.layout.activity_main)位置的重要
- android 动态修改 TextView的width属性
- Android(安卓)studio APP开发 ListView控件的建立和使用
- Android中通过AsyncTask类来制作炫酷进度条的实例教程
- Android进度条 多线程登录或下载
- Android自定义进度条——圆角横向进度条