前面已经学了activity的一些使用,那么下面我们进行android中基本的控件的学习和使用。

1.android中的TextView控件

新建一个项目,项目名为UITest,才有默认的设置,修改布局文件的内容,如下:

    

运行程序如下:

android学习五(android中基本控件的使用)_第1张图片


下面我们来说说每个参数的意义:

android:id="@+id/text_view":给当前的控件定义了唯一标志符

android:layout_width:指定控件的宽度

android:layout_height:指定的控件的高度

android中所有的控件都具有android:layout_width,android:layout_height这两个属性,可选的值有match_parent,fill_parent,wrap_content,其中match_parent和fill_parent的意义一样,现在官方推荐用match_parent,表示当前控件和父布局的大小一样,也就是有父布局来决定当前控件的大小。wrap_content表示挡墙控件的大小能够刚好包含住里面的内容,也就是控件内容决定当前控件的大小。所以上面的布局中让TextView的宽度和父布局一样,也就是手机的宽度,让TextView的高度足够包含住里面的内容就行。

android:text:指定TextView显示的内容,TextView默认的文字对齐方式是居左上角对齐。

下面我们修改下文字的对齐方式,给TextView添加一个android:gravity="center"属性,在运行程序

android学习五(android中基本控件的使用)_第2张图片


使用android:gravity来指定文字的对齐方式,可选的值有top,bottom,left,right,center等或者用“|”来同时指定多个值,这里我们指定的“center”,效果等效于center_vertical|center_horizontal,表示文字在垂直和水平方向都居中对齐。

下面我们在修改下文字的大小和颜色,并修改TextView的背景颜色



android学习五(android中基本控件的使用)_第3张图片


效果图如上

android:textSize="24sp":指定文字的大小

android:textColor="#00ff00":指定文字的颜色,颜色为绿色

android:background="#ff0000":指定TextView的背景色为红色


关于TextView的基本属性就介绍到这吧,android很多的控件属性都相似的,举一反三。下面我们来学习Button吧。



2.android中的Button

改写布局文件代码如下:

           

运行程序如下:

android学习五(android中基本控件的使用)_第4张图片


我们在MainActivity中为按钮添加事件监听

package com.wj.uitest;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button button1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1=(Button) findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//添加事件处理逻辑}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}



或者通过实现接口来给按钮添加监听代码如下:

package com.wj.uitest;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity  implements OnClickListener{private Button button1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1=(Button) findViewById(R.id.button1);button1.setOnClickListener(this);/*button1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//添加事件处理逻辑}});*/}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.button1://在此处添加事件处理逻辑break;default:break;}}}


   

上面2中方法都可以实现对android的事件监听,具体使用什么,看你自己的爱好

3.Android中的EditText

修改布局文件添加EditText控件

           


运行程序

android学习五(android中基本控件的使用)_第5张图片

下面我们在给EditText添加提示文字,修改布局文件



运行程序:

android学习五(android中基本控件的使用)_第6张图片


android:hint:属性是给EditText提供输入提示的文字

下面我们使用一个android:maxLines属性,使用android:maxLines指定最多显示的行数,当超过了指定的行数,文本就会向上滚动。修改下EditText的代码:


运行程序:

android学习五(android中基本控件的使用)_第7张图片



下面我们演示通过点击按钮获取输入的EditText的内容,

修改MainActivity里面的代码,代码如下:

package com.wj.uitest;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity  implements OnClickListener{private Button button1;private EditText editText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1=(Button) findViewById(R.id.button1);button1.setOnClickListener(this);editText=(EditText) findViewById(R.id.edit_text);/*button1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//添加事件处理逻辑}});*/}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.button1://在此处添加事件处理逻辑String text=editText.getText().toString();Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();break;default:break;}}}


在文本框输入,内容后,通过点击按钮,来显示输入的内容,运行程序操作结果如下:

android学习五(android中基本控件的使用)_第8张图片


代码中editText.getText().toString()是通过点击按钮来获取输入文本框的内容,并转换成字符串。最后用Toast把输入的字符串显示出来。


4.Android的ImageView 

android之中用来显示一张图片的是ImageView 控件,下面我就借助ImageView 来显示一张图片,首先我在我的drawable文件夹下面添加了2张图片。接着修改布局文件,添加图片的控件。

           

运行程序:

android学习五(android中基本控件的使用)_第9张图片


可见上面已经显示了一张图片了,由于不知道图片的大小,所以把ImageView控件设置成随图片的大小自动的变化。

android:src="@drawable/note1",这一句是给ImageView控件指定一张图片。

下面我在修改下代码,通过点击按钮,改变下图片,修改代码如下:

package com.wj.uitest;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity  implements OnClickListener{private Button button1;private EditText editText;private ImageView imageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1=(Button) findViewById(R.id.button1);button1.setOnClickListener(this);editText=(EditText) findViewById(R.id.edit_text);imageView=(ImageView) findViewById(R.id.image_view);/*button1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//添加事件处理逻辑}});*/}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.button1://在此处添加事件处理逻辑/*String text=editText.getText().toString();Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();*///通过ImageView的setImageResource函数改变显示的图片imageView.setImageResource(R.drawable.note2);break;default:break;}}}

没有点击按钮前,图片显示和上面一张图片一样,当点击按钮以后,显示如下:

android学习五(android中基本控件的使用)_第10张图片




5.Android中的ProgressBar

ProgressBar用于在界面上显示一个进步条,表示我们的程序正在加载一些数据。下面是添加ProgressBar控件的代码,我把ProgressBar的背景色指定为蓝色了。修改布局代码如下:

           


运行程序结果如下:

android学习五(android中基本控件的使用)_第11张图片


我们看到屏幕中有一个圆形的进度条正在旋转,如上。

由于数据总有加载完的时候,所以进度条不能一直显示,这时候我们就要用到Android控件的可见属性了,可选的值有visible,invisible和gone。visible表示控件是可见的,这个值是默认的值,不指定android:visibility时,控件是可见的。invisible表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解为控件变成了透明状态。gone则表示控件不仅不可见,而且不在占用任何屏幕空间。我们还可以通过代码来设置控件的可见性,使用的是setVisibility方法,可以传入的View.VISIBLE,View.INVISIBLE,View.GONE。

下面我通过点击下按钮让进度条消失,在点击下按钮,则显示进度条。修改代码如下:

package com.wj.uitest;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.Toast;public class MainActivity extends Activity  implements OnClickListener{private Button button1;private EditText editText;private ImageView imageView;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1=(Button) findViewById(R.id.button1);button1.setOnClickListener(this);editText=(EditText) findViewById(R.id.edit_text);imageView=(ImageView) findViewById(R.id.image_view);progressBar=(ProgressBar) findViewById(R.id.progress_bar);/*button1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//添加事件处理逻辑}});*/}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.button1://在此处添加事件处理逻辑/*String text=editText.getText().toString();Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();*///通过ImageView的setImageResource函数改变显示的图片/*imageView.setImageResource(R.drawable.note2);*///控制进度条的显示和消失if(progressBar.getVisibility()==View.GONE){//getVisibility()方法获取进度条的显示状态progressBar.setVisibility(View.VISIBLE);}else{progressBar.setVisibility(View.GONE);}break;default:break;}}}

运行程序,如下:

android学习五(android中基本控件的使用)_第12张图片

点击按钮后,程序显示如下:

android学习五(android中基本控件的使用)_第13张图片

另外进度条有不同的显示样式,刚刚显示的是圆形的进度条,通过style属性可以将它变成水平的进度条,修改布局文件如下:

    

运行程序如下:

android学习五(android中基本控件的使用)_第14张图片


下面我添加代码,使通过点击按钮,进度条进行增长,修改代码如下:

package com.wj.uitest;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.Toast;public class MainActivity extends Activity  implements OnClickListener{private Button button1;private EditText editText;private ImageView imageView;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1=(Button) findViewById(R.id.button1);button1.setOnClickListener(this);editText=(EditText) findViewById(R.id.edit_text);imageView=(ImageView) findViewById(R.id.image_view);progressBar=(ProgressBar) findViewById(R.id.progress_bar);/*button1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//添加事件处理逻辑}});*/}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.button1://在此处添加事件处理逻辑/*String text=editText.getText().toString();Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();*///通过ImageView的setImageResource函数改变显示的图片/*imageView.setImageResource(R.drawable.note2);*///控制进度条的显示和消失/*if(progressBar.getVisibility()==View.GONE){//getVisibility()方法获取进度条的显示状态progressBar.setVisibility(View.VISIBLE);}else{progressBar.setVisibility(View.GONE);}*///点击按钮,增加进度条的进度int progress=progressBar.getProgress();progress=progress+10;progressBar.setProgress(progress);break;default:break;}}}

运行程序,点击按钮,显示如下:

android学习五(android中基本控件的使用)_第15张图片

观看图,可以看到进度条有进度显示了,显示的是蓝色部分。每点击一下按钮进度增加值为10。ProgressBar还有几种样式可以自己试试。


6.Android的AlertDialog

android的AlertDialog的使用,可以直接看代码,比较的简单,我就直接贴代码了

package com.wj.uitest;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.Toast;public class MainActivity extends Activity  implements OnClickListener{private Button button1;private EditText editText;private ImageView imageView;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1=(Button) findViewById(R.id.button1);button1.setOnClickListener(this);editText=(EditText) findViewById(R.id.edit_text);imageView=(ImageView) findViewById(R.id.image_view);progressBar=(ProgressBar) findViewById(R.id.progress_bar);/*button1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//添加事件处理逻辑}});*/}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.button1://在此处添加事件处理逻辑/*String text=editText.getText().toString();Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();*///通过ImageView的setImageResource函数改变显示的图片/*imageView.setImageResource(R.drawable.note2);*///控制进度条的显示和消失/*if(progressBar.getVisibility()==View.GONE){//getVisibility()方法获取进度条的显示状态progressBar.setVisibility(View.VISIBLE);}else{progressBar.setVisibility(View.GONE);}*///点击按钮,增加进度条的进度/*int progress=progressBar.getProgress();//获取到当前进度条的进度progress=progress+10;progressBar.setProgress(progress);*//* * AlertDialog可以在当前的界面弹出一个对话框,这个对话框是置与所有界面元素之上的,能够 * 屏蔽掉其他控件的交互能力,因此一般AlertDialog都用于提示一些非常重要的内容或者警告信息 * */AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);dialog.setTitle("this is dialog");//对话框标题dialog.setMessage("Something import.");//设置提示信息dialog.setCancelable(false);//为对话框设置确定按钮的点击事件dialog.setPositiveButton("OK", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub//进行逻辑处理}});//为对话框设置取消按钮的点击事件dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub//进行逻辑处理}});//显示对话框dialog.show();break;default:break;}}}

运行程序,点击按钮后,结果如下所示:

android学习五(android中基本控件的使用)_第16张图片



7.Android中的ProgressDialog

ProgressDialog和上面的对话框用法差不多,所以也不多讲了,具体的在代码里面写了注释了,可以查看注释。修改代码如下:

package com.wj.uitest;import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.Toast;public class MainActivity extends Activity  implements OnClickListener{private Button button1;private EditText editText;private ImageView imageView;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button1=(Button) findViewById(R.id.button1);button1.setOnClickListener(this);editText=(EditText) findViewById(R.id.edit_text);imageView=(ImageView) findViewById(R.id.image_view);progressBar=(ProgressBar) findViewById(R.id.progress_bar);/*button1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//添加事件处理逻辑}});*/}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch(v.getId()){case R.id.button1://在此处添加事件处理逻辑/*String text=editText.getText().toString();Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();*///通过ImageView的setImageResource函数改变显示的图片/*imageView.setImageResource(R.drawable.note2);*///控制进度条的显示和消失/*if(progressBar.getVisibility()==View.GONE){//getVisibility()方法获取进度条的显示状态progressBar.setVisibility(View.VISIBLE);}else{progressBar.setVisibility(View.GONE);}*///点击按钮,增加进度条的进度/*int progress=progressBar.getProgress();//获取到当前进度条的进度progress=progress+10;progressBar.setProgress(progress);*//* * AlertDialog可以在当前的界面弹出一个对话框,这个对话框是置与所有界面元素之上的,能够 * 屏蔽掉其他控件的交互能力,因此一般AlertDialog都用于提示一些非常重要的内容或者警告信息 * *//*AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);dialog.setTitle("this is dialog");//对话框标题dialog.setMessage("Something import.");//设置提示信息dialog.setCancelable(false);//为对话框设置确定按钮的点击事件dialog.setPositiveButton("OK", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub//进行逻辑处理}});//为对话框设置取消按钮的点击事件dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub//进行逻辑处理}});//显示对话框dialog.show();*//* * ProgressDialog和AlertDialog有点类似,都是可以在界面弹出一个对话框,都能够屏蔽 * 掉其他控件的交互能力。不同的是,ProgressDialog会在对话框中显示一个进度条,一般是用于 *表示当前操作比较耗时,让用户耐心等待。 * *///创建组件ProgressDialog progressDialog=new ProgressDialog(MainActivity.this);//设置标题progressDialog.setTitle("this is progressDialog");//设置提示内容progressDialog.setMessage("Loading....");//setCancelable方法如果传入的false,表示ProgressDialog是不能通过back键取消掉的,//这时你就要在代码中做好控制,当数据加载完后必须要调用ProgressDialog的dismiss()方法来关闭//对话框,否则ProgressDialog将会一直存在progressDialog.setCancelable(true);//进行显示progressDialog.show();break;default:break;}}}
运行程序后结果如下:

android学习五(android中基本控件的使用)_第17张图片

基本的控件的使用就总结到这里了,下面会讲解下android中的布局



转载请注明来至:http://blog.csdn.net/j903829182/article/details/40660275



更多相关文章

  1. ListView有背景图片或背景颜色,那么在滑动ListView的时候,ListView
  2. 编写Android自定义按钮
  3. Android 获取并显示远程图片 Picasso框架的使用(二)
  4. Android开发之实现图片自动滚动显示标签的ViewPager
  5. Android ListView异步加载图片乱序问题,原因分析及解决方案
  6. Android简单、灵活、高效的图片裁剪框架 Android-ImageClipper
  7. 转载关于android高效显示图片的文章---From 移动微技
  8. 【Android 初学】3、控件布局初步

随机推荐

  1. Android(安卓)网络请求不能放在主线程上
  2. android 短信发送器
  3. Android的service学习(1)
  4. Android(安卓)API中文(42)—— ListView
  5. Android(安卓)Mvvm入门教程
  6. Android的四种基础动画
  7. Android腾讯微薄客户端开发十三:提及篇(与
  8. android opengl es 源码
  9. android微信摇一摇功能
  10. Android(安卓)用手势切换activity