Android提供了大量的UI控件,在这里我们挑选几种常用的控件,详细的介绍一下使用方法。
首先我们新建一个UIWidgetTest,其余全部使用默认
我先贴上一些代码:
<LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<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 text view"
/>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"
android:textAllCaps="false"
/>
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Type something here"
android:maxLines="2"
/>
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/img_1"
/>
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
/>
</LinearLayout>
通过观察代码,我们可以发现,其实使用方法差不多,设置一个id,然后宽度和高度,之后就是一些标签的特殊属性了。这些都可以通过查阅APi文档知道。具体来说,安卓中所有的控件都有这二个属性,android:layout_width和android:layout_height,且有三个值可以选择:match_parent,fill_parent,wrap_parent,match_parent表示让当前控件大小和父布局大小一样,也就是父布局觉得当前控件的大小,wrap_parent表示让当前控件大小刚好可以包含住里面的内容,
TextView控件:android:gravity是来指定文字的对齐方式,top,bottom,right等等, android:textSize=“24sp” android:textColor="#00ff00"这二个控件一个指定文字大小,一个指定文字颜色,在安卓中sp作为字体大小的单位,
Button控件:android:textAllCaps,关闭自动进行大小写转换,然后我们可以在java代码中为Button注册监听事件,如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
EditText editText = (EditText) findViewById(R.id.edit_text);
progressBar= (ProgressBar)findViewById(R.id.progress_bar);
// ImageView imageView = (ImageView) findViewById(R.id.image_view);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
//在此处添加逻辑
break;
default:
break;
在这里我使用接口的方式来进行注册,之前一直使用的内部类来注册,二种那种看大家喜好了。EditText是一个文本输入控件。加上:android:hint;属性即在输入框,显示提示语言;输入文字后,消失。Maxlines,即规定最多输入但是行,我们还可以结合EditText和Button来完成一些功能,比如通过点击按钮来获取EditText输入的内容,代码如下:
String inputText = editText.getText().toString();
Toast.makeText(MainActivity.this,inputText,Toast.LENGTH_SHORT).show();
ImageView,是在界面上显示一个图片界面,我在上述代码中,已经书写,并提前放入了二张照片,我们也可以动态的获取图片。,在case语句下加入如下代码:
imageView.setImageResource(R.drawable.img_2);
ProgressBar是在界面上显示一个加载的的进度条,
AlterDialog可以在当前界面弹出一个对话框,这个对话框至于所有的界面元素之上,能屏蔽所有控件的交互能力,使用代码如下:
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
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() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
首先通过 AlertDialog Bulider创建一个 dialog实例,然后为这个对话框设置属性,接下来调用setPositveButton()方法为对话框设置确定点击按钮事件,再调用setNegativeButton方法为对话框设置取消点击按钮事件,最后调用show()方法来显示数来,