1、layout_height=指定为match_parent layout_weight=1,使用比例方式来指定控件的大小RelativeLayout,相对布局,就是通过相对定位的方式让布局中控件可以出现在布局的任何位置。内部控件,三种属性, 属性值就是true或falselayout_centerHrizontal 水平居中,属性值就是”id/*“layout_below 在某元素的下方属性值就是数值layout_marginLeft 离某元素左边缘的距离FrameLayout,帧布局,简单,应用场景少,与碎片一起使用,没有定位方式,所有控件默认在布局的左上角,后面的会覆盖前面的。每一个组件都
2、代表一个画面用该布局可以实现动画效果PercentFrame(Relative)Layout 百分比布局:布局中可以不用wrap_content,match_parent等方式来指定控件的大小,直接指定控件所占的百分比,实现平分布局甚至任意比例分割布局。注意百分比布局需要添加库依赖 support:percent:24、由于LinearLayout本身支持按比例指定控件大小,所以百分比布只为RelativeLayout与RelativeLayout功能扩展表格布局(Tablelayout)采用行列的形式管理UI组件,无需明确地声明它的行列数, 而就是通过添加TableRow、其她组件来控制表格
3、的行数与列数GridLayout就是Android4、0之后新增的布局管理器,因此正常情况下需要在 Android 4、0 之后的版本中才能使用,如果希望在更早的版本中使用的话,需要导入相应的支撑库(v7包的gridlayout包)。Grid Layout 网格布局,与前面所讲的 Table Layout(表格布局) 有点类似,不过她有很多前者没有的东西,因此也更加好用:- 可以自己设置布局中组件的排列方式- 可以自定义网格布局有多少行、列- 可以直接设置组件位于某行某列- 可以设置组件横跨几行或者几列Absolute Layout 它不提供任何布局控制,而就是由开发人员自己通过X、Y坐标来控
4、制组件的位置。运行Android应用的手机往往千差万别,屏幕大小、分别率、屏幕密度等都可能存在较大的差异,使用绝对布局的话很难做机型适配-已经被废弃2. 理解Android应用程序开发过程中,常见的四种设计模式及各自的使用场合。ListView-Adapter、Builder-Dialog、Factory-选项卡、Listener-事件监听。1适配器模式:简介:将一个类的接口转换成客户希望的另外一个接口,从而使原本因接口不匹配而无法再一起工作的两个类能够在一起工作。不同的数据提供者使用一个适配器来向一个相同的客户提供服务。举例:ListView或GridView的Adapter。2建造者模式:
5、将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的显示,但其根本还就是不变。AlertDialog、Builder、AlertDialog、Builder, 使用该Builder来构建复杂的AlertDialog对象工厂模式:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。外部不需要关心工厂就是如何创建一个复杂产品的过程示例:BitmapFactory位图工厂,专门用来将指定的图片转换为指定的位图Bitmap。监听器模式事件源经过事件的封装传给监听器,当事件源触发事件后,监听器接收到事件对象可以回调事件的方法、Listener-事件监听观察者模式:定义对象间就是一(S
6、ubject)对多(Observer)的依赖关系,当一个对象发生变化时,其它依赖该对象的对象都会收到通知,并随着变化。广播机制就就是观察者模式ListView与BaseAdapter组合时,当BaseAdapter的item改变时,我们经常会调用notifyDataSetChanged(),通知Listview刷新3. Android中可支持网页的缩放的视图(View)及其功能在Android系统中,内置了一款高性能的浏览器,其内核就就是WebKit,WebView网页视图,就就是在这个基础上封装的一个控件,我们可以直接用这个控件在应用程序内去显示Web页面,直接用HTML文件做为布局文件,可
7、以与JavaScript交互调用。显示与渲染web页面(1)、直接显示网页 设置在当前应用中打开网页,如果不设置的话会使用手机浏览器打开网页 mWebView、setWebViewClient(new WebViewClient() Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) view、loadUrl(); return true; ); mWebView、loadUrl(2)与js交互设置支持JavascriptWebSettings settings =
8、 webView、getSettings();settings、setJavaScriptEnabled(true);(3)可以利用html做界面布局4. 理解View与ViewGroup的用途及两者之间的关系。继承结构: View就是ViewGroup的父类类。View就是所有UI组件的基类,而 ViewGroup就是容纳这些组件的容器,其本身也就是从View派生出来的、View中所有的子类成为widgets,viewgroup的子类成为layout。View与ViewGroup之间采用了组合设计模式,可以使得“部分-整体”同等对待。ViewGroup作为布局容器类的最上层,布局容器里面又可
9、以有View与ViewGroup。对于setContentView(R、layout、layout的xml文件)方法,Activity其实不就是显示视图(直观上感觉就是它),实际上Activity调用了PhoneWindow的setContentView()方法,然后加载视图,将视图放到这个Window上,而Activity其实构造的时候初始化的就是Window(PhoneWindow),Activity其实就是个控制单元,即可视的人机交互界面。Activity就是一个工人,它来控制Window;Window就是一面显示屏,用来显示信息;View就就是要显示在显示屏上的信息,这些View都就是
10、层层重叠在一起(通过infalte()与addView()放到Window显示屏上的。而LayoutInfalter就就是用来生成View的一个工具,XML布局文件就就是用来生成View的原料。(2)、Activity、Window、View之间的关系:Activity就是Window与View之间的桥梁,将View的内容信息显示在Window窗口上面。5. 理解Android网络编程中,常见的数据传输格式。网络传输中最常见的有xml与json ,还有protocol buffers,gzip,ThriftXml通过Pull,SAX与Dom方式解析Json用JSONObject与GSON解析。
11、Protocol Buffers一种数据描述语言,类似于XML能够将结构化数据序列化类似于XML,但更小,更快,更简单经常用到json、xml等格式的数据,这些数据在传输前可以进行压缩,这时候就会涉及到一种压缩格式Gzip。Gzip的压缩比率非常大,有的甚至能达到70%以上,可以大大减少传输内容,提高用户的传输速度,进而提高用户的体验6. 理解基本组件Activity的相关知识(如重载方法等)。Android应用有四大组件Activity、Service、BroadcastReceiver、ContentProviderContentProvider组件:用于Android应用之间实现实时的数
12、据交换。常与ContentResolver一起使用BroadcastReceiver组件:广播消息接收器,类似于事件编程中的监听器,但就是不同的就是普通的事件监听器监听的事件源就是程序中的对象,而BroadcastReceiver监听的事件源就是Android应用程序中的其它组件。Service组件: 通常位于后台运行,一般不需要与用户交互,所以没有图形界面。Service组件运行起来后会有独立的生命周期,它通常用于为其她组件提供后台服务或监控其她组件的运行状态(1) activity就是一种可以包含用户界面的组件,主要用于与用户进行交互表现形式就是一个屏幕,功能就是显示界面,消息传递整个生命
13、周期:onCreate()-onDestroy()可见的生命周期:onStart()-onStop()前台的生命周期:onResume()-onPause()运行,暂停(不在栈顶,但可见),停止(完全不可见,有可能因内存不够被回收),销毁(从栈中移除覆盖了activity生命周期的每一个环节onCreate():当activity就是被创建时候,会自动运行该方法。该方法做一些初始化动作,比如加载布局,绑定时间等。onStart():活动在有不可见变为可见的时候调用。onResume():当activity开始与用户交互(获得焦点)时,会调用onResume,此就是活动一定位于返回栈的栈顶,并处
14、于运行状态。onPause():当系统准备启动或恢复另一个活动时调用。此时活动处于暂停状态(当一个活动不再处于栈顶的位置,但仍然可见,弹出一个对话框或者一个不能占满屏幕的活动都会导致前一个活动处于暂停状态)通常会在这个方法中释放掉一些占用cpu的资源onStop():当这个activity完全瞧不见的时候,会调用onStop方法。以下三种情况都会使这个activity调用onStop()方法,第一种就是一个新的activity被执行,第二种就是一个已经存在的activity被切换到最前端,第三种就是这个activity要被销毁。onRestart():把activity从停止状态变为运行状态,活动被重新启用。onDestroy():当activity销毁前会调用该方法,之后变为销毁状态。理解何时需要在Activity中重写方法onActivityResult?当使用startActivityForResult()(在第一个活动中)方法启动另一个Activity时,需要在第一个活动中重写onActivityResult()方法,获得被启动Activity返回的结果。Intent intent=new Intent(this,se
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1