android程序界面编程与视图(View)组件.doc_第1页
android程序界面编程与视图(View)组件.doc_第2页
android程序界面编程与视图(View)组件.doc_第3页
android程序界面编程与视图(View)组件.doc_第4页
android程序界面编程与视图(View)组件.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

android程序界面编程与视图(View)组件android应用开发一个主要内容就是界面开发。随着移动设备的不断普及,android应用几乎无处不在,设计到各个领域。对于用户来说,除了看重一个应用的功能外,图形界面也是最关注的对象。如果一个应用没有提供友好的图形界面,那么将很难吸引最终的用户;相反,如果为应用程序提供一个友好的图形界面(GUI),那么用户可以轻松的通过手指去点击各种事件爱你,来操作这个应用程序,用户就会感觉到”很爽“。就像windows系统一样,最初能很快吸引大量用户,就是因为它有丰富的图形界面,才几乎独占整个市场。可想而知,友好的图形界面是多么的重要。对于程序员来说,除了要开发出友好的图形界面,还好去思考用什么方式去实现比较好。android提供了大量功能丰富的UI组件,这些组件功能都具有一定的规律且具有很多相似之处,程序开发人员只需要掌握这些规律,就可以实现出漂亮、友好的图形界面了。在接下的一段时间里,将会陆续介绍。今天我们就先介绍一下界面编程与视图组件之间的联系吧!1、视图组件与容器组件在一个activity文件中,我们会看到很多包:javaview plaincopy1. importandroid.widget.EditText;2. importandroid.widget.ImageButton;3. importandroid.widget.ImageView;4. importandroid.widget.LinearLayout;5. importandroid.widget.PopupWindow;6. importandroid.widget.RadioButton;7. importandroid.widget.RadioGroup;8. importandroid.widget.RelativeLayout;9. importandroid.widget.SeekBar;10. importandroid.widget.CompoundButton.OnCheckedChangeListener;11. importandroid.widget.SeekBar.OnSeekBarChangeListener;12. importandroid.widget.TextView;13. importandroid.widget.Toast;14. importandroid.widget.ViewSwitcher;android应用的绝大多数UI组件都是放在android.widget包中以及其子包中、android.view包中以及其子包中。值得注意的是,android中所有的组件都是继承了View类。View类是一个非常重要的类,其还有一个子类ViewGroup,但是ViewGoup类经常作为其他组件的容器使用。还有一点值得说明的就是View与ViewGoup类之间的关系,View类包含ViewGoup类,同时ViewGoup类中也包含View类:那么在android项目中我们如何去实现界面开发呢?一般情况下,我们可以采用两种方式来实现:(1)、在XML布局文件中通过XML属性进行控制,一般推荐使用这种方式。(2)、在Java程序代码中通过调用方法进行控制。无论是哪一种实现方式,其实他们的本质都是一样的。在XML文件中实现UI组件,我们要是添加UI组件相应的XML属性;在java代码中实现UI组件,我们通过相应的属性方式来控制组件的属性,也就是说,其实每一个UI组件的XML属性都会对应一个方法。UI组件的属性包括View类常用的XML属性及相关方法和ViewGoup类中常用的XML方法。对View类来说,他们是所有UI组件的基类,因此它包含的XML属性都会对应一个方法。常用的有:XML属性相关方法说明android:alphasetAlpha(float)设置组件的透明度android:backgroundsetBackGroundResource(int)设置组建的背景颜色android:idsetId(int)设置组件的唯一标识android:keepScreenOnsetKeepSCreenOn(int)设置该组件是否强制手机屏幕一直打开android:visibilitysetVilibility(int) 设置组件是否可见 ViewGroup类继承了View类,因此也是可以当成一个普通的View类来使用的。但是,ViewGroup类主要是当成容器类来使用。又由于ViewGroup类是一个抽象类,因此在使用中,通常使用它的一些子类来作为容器,例如各种布局管理器。ViewGroup容器控制其子组件的分布依次是Viewgroup.LayoutParams、ViewGroup.MarginLayoutParams两个内部类。这两个内部类中都提供了一些XML属性,ViewGroup容器中的子组件可以指定这些XML属性。Viewgroup.LayoutParams支持两个XML属性:XML属性说明android:layout_height指定该子组件布局的高度android:layout_width指定该子组件布局的宽度在XML布局文件中这样使用:htmlview plaincopy1. android:layout_width=fill_parent2. android:layout_height=wrap_contentandroid:layout_height、android:layout_width两个属性的值有三种:(1)、fill_parent:指定子组件的高度、宽度和父容器的高度、宽度相同(实际上还要减去填充的空白距离)。(2)、match_parent:该属性和fill_parent完全相同,但是在android2.2版本以后推荐使用这个。(3)、wrap_parent:指定组件的大小恰好能包裹它里面的内容。另外ViewGroup.MarginLayoutParams支持四个XML属性:XML属性相关方法说明android:layout_marginBottomsetMargins(int,int,int,int)指定子组件下边的页边距android:layout_marginLeftsetMargins(int,int,int,int)指定子组件左边的页边距android:layout_marginRightsetMargins(int,int,int,int)指定子组件右边的页边距android:layout_marginTopsetMargins(int,int,int,int)指定子组件上边的页边距在XML布局文件中这样使用:htmlview plaincopy1. android:layout_marginTop=10dp2. android:layout_marginLeft=10dp3. android:layout_marginRight=10dp4. android:layout_marginBottom=10dp当然了组件的属性远不止这些,还有很多,以上列举的只是常用的几个而已!2、使用XML布局文件来控制UI界面android中常用和推荐使用的就是这种实现方式,它具有简单、方便、清晰的特点,而且可以将应用的视图控制逻辑从java代码中分离出来,放入到XML文件进行控制,很好的提现了MVC原则。在之前我们也说了在XML文件实现组件的方法,下面再简单介绍一下:(1)在XML文件中设置布局组件:例如我实现一个TextView控件:htmlview plaincopy1. 接下来我们就需要在Activity中先找到这个布局文件:javaview plaincopy1. setContentView(R.layout.main);接下来就是去访问这个组件,需要绑定她的ID,这样才知道要访问的组件是哪一个:javaview plaincopy1. privateTextViewshowText;javaview plaincopy1. showText=(TextView)findViewById(R.id.show_helloworld);一旦获取指定的UI组件之后,就可以通过代码控制这个组件的属性以及UI组件绑定的监听事件。(2)在代码中控制UI界面虽然android中推荐使用XML文件来控制组件,如果开发者需要也可以在java代码 中去实现控制一个组件,可以完全抛弃XML文件的限制。下面我们就接上上面的实现,假设上面的主界面是通过XML文件来实现的,下面我们通过点击Text控件,来调到另一个Activity页面,这个Activity页面是通过java代码来实现的。新建一个JavaActivity类,添加代码:javaview plaincopy1. /创建一个线性布局管理器2. LinearLayoutlayout=newLinearLayout(this);3. /设置anctivity显示layout4. super.setContentView(layout);5. layout.setOrientation(LinearLayout.VERTICAL);6. /创建一个TextView7. finalTextViewtextView=newTextView(this);8. textView.setText(我是通过java代码实现的);9. layout.addView(textView);在MainActivity类中调用:javaview plaincopy1. showText=(Button)findViewById(R.id.show_helloworld);2. showText.setOnClickListener(newOnClickListener()3. 4. Override5. publicvoidonClick(Viewarg0)6. /TODOAuto-generatedmethodstub7. Intentintent=newIntent(MainActivity.this,JavaActivity.class);8. startActivity(intent);9. 10. );效果如图: 从上面的代码我们可以看到,javaactivity类中的组件是通过new关键字创建的,然后程序使用LineLayout容器来“存放”这些组件,这样就组成了图形用户。在很多情况下我们都要传一个参数this,这是为什么呢?这是因为由于创建UI组件时传入了一个Conten

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论