文档章节

Android第三十二天

黄晓磊
 黄晓磊
发布于 2016/07/13 08:37
字数 1384
阅读 24
收藏 1

1、什么是View?
 <1>所有高级UI组件都继承View类而实现的;
 <2>一个View在屏幕上占据一块矩形区域;
 <3>负责渲染;
 <4>负责处理发生的事件;
 <5>设置是否可见;
 <6>设置是否可以获得焦点等
2、LinearLayout、RelativeLayout和FrameLayout的联系和区别。
 <1>FrameLayout   
     这个布局可以看成是墙脚堆东西,有一个四方的矩形的左上角墙脚,我们放了第一个东西,要再放一个,那就在放在原来放的位置的上面,这样依次的放,会盖住原来的东西。这个布局比较简单,也只能放一点比较简单的东西。   
 <2>LinearLayout   
 线性布局,这个东西,从外框上可以理解为一个div,他首先是一个一个从上往下罗列在屏幕上。每一LinearLayout里面又可分为垂直布局 (android:orientation="vertical")和水平布局(android:orientation="horizontal" )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。   
linearLayout中有一个重要的属性 android:layout_weight="1",这个weight在垂直布局时,代表行距;水平的时候代表列宽;weight值越大就越大。
 <3>RelativeLayout   
     相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:   
 相对于某一个元素   
      android:layout_below="@id/aaa" 该元素在 id为aaa的下面   
      android:layout_toLeftOf="@id/bbb" 改元素的左边是bbb   
        相对于父元素的地方   
       android:layout_alignParentLeft="true"  在父元素左对齐   
       android:layout_alignParentRight="true" 在父元素右对齐   
      还可以指定边距等
3、View和ViewGroup的区别。
 View是ViewGroup的父类。Android的UI开发使用层次模型来完成,一般都是在一个ViewGroup中嵌套多层ViewGroup,每一层中含有随意数目的View。我们可以将整个屏幕看做一个ViewGroup,它同时也是一个View,而在这个整体的ViewGroup之中,又有多个ViewGroup和View,每个ViewGroup中又可以有多个子ViewGroup和View。
4、在XML中引用一个id,使用@id/id_name这种语法;需要在XML中定义一个id,要使用@+id/id_name这种语法。
5、android:layout_height指定了当前元素的高度;
   android:layout_width指定了当前元素的宽度;
   android:match_parent表示让当前元素和父元素一样宽;
   android:wrap_content表示当前元素的高度只要能刚好包含里面的内容就行了;
   android:text指定了元素中显示的文字内容;
   android:lable指定活动中标题栏的内容,标题栏是显示在活动最顶部的。
6、gravity和Layout_gravity的区别。
 LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。他们的区别在 于:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的 对齐方式。
 举个例子,我们可以通过设置android:gravity="center"来让EditText中的文字在EditText组件中居中显示;同时我们设置EditText的android:layout_gravity="right"来让EditText组件在LinearLayout中居中显示。
7、Activity的四种基本状态分别是哪些?
 运行态(Running)、暂停态(Paused)、停止态(Stopped)、终止态(Destroyed)。
8、Android中的六大布局分别是什么?
 绝对布局(AbsoluteLayout)、相对布局(RelativeLayout)、线性布局(LinearLayout)、帧布局(FrameLayout)、表格布局(TableLayout)、网格布局(GridLayout)。
9、padding和margin的区别。
 padding填充的意思,指的是view中的content与view边缘的距离,类似文本中的indent而margin表示的是view的左边缘与parent view的左边缘的距离,margin一般用来描述控件间位置关系,而padding一般描述控件内容和控件的位置关系。
 简单,padding是站在父 view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。margin则是站在自己的角度描述问题,规定自己和其他(上下左右)的 view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了。
10、相对布局中只能设为boolean值的属性
 android:layout_centerHorizontal——控制该子组件是否位于布局容器的水平居中;
 android:layout_centerVertical——控制该子组件是否位于布局容器的垂直居中;
 android:layout_centerInParent——控制该子组件是否位于布局容器的中央位置;
 android:layout_alignParentBottom——控制该子组件是否与布局容器底端对齐;
 android:layout_alignParentLeft——控制该子组件是否与布局容器左边对齐;
 android:layout_alignParentRight——控制该子组件是否与布局容器右边对齐;
 android:layout_alignParentTop——控制该子组件是否与布局容器顶端对齐;
11、相对布局中只能设为其他UI组件ID的属性
 android:layout_toRightOf——控制该子组件位于给出ID组件的右侧;
 android:layout_toLeftOf——控制该子组件位于给出ID组件的左侧;
 android:layout_above——控制该子组件位于给出ID组件的上方;
 android:layout_below——控制该子组件位于给出ID组件的下方;
 android:layout_alignTop——控制该子组件位于给出ID组件的上边界对齐;
 android:layout_alignBottom——控制该子组件位于给出ID组件的下边界对齐;
 android:layout_alignLeft——控制该子组件位于给出ID组件的左边界对齐;
 android:layout_alignRight——控制该子组件位于给出ID组件的右边界对齐;

© 著作权归作者所有

共有 人打赏支持
黄晓磊
粉丝 20
博文 51
码字总数 45039
作品 0
成都
私信 提问
Android第四十二天

1、Fragment的简单使用 <1>Fragment:在Activity中使用的碎片,有自己的布局、生命周期和输入事件 <2>使用Fragment的步骤 (1)创建类,并继承Fragment; (2)重写Fragment的onCreateView()生...

黄晓磊
2016/07/26
20
0
Chrome OS 的分屏功能或支持与安卓应用程序一起运行

谷歌整合 Chrome OS 与 Android 的意图越来越明显了,他们希望最终让你在分屏模式下使用 Android 应用程序。 这不是 Chrome OS 的全新功能,因为目前你可以在平板电脑模式下使用分屏窗口。不...

局长
2018/01/27
1K
2
大三学生,关于一个javaWeb项目心情很堵,想和前辈们聊聊。。。。

最近有一个老师给了一个项目让我做,而且很急,规定十二天做完,我是第一次做有专门的需求分析的项目,说实在的,老师给的那个需求分析,很多很多东西都没有说清楚,由于是给客户做的,我也不...

上帝爱众生
2014/12/28
36
1
Android第二十二天

一:URL类 类URL代表一个统一资源定位符,它是指向互联网“资源”的指针。 public URL(String spec) public URLConnection openConnection() public final InputStream openStream() 二:URL...

黄晓磊
2016/06/28
15
0
Firefox OS 身先去:移动生态为何难有第三极?

日前,Mozilla宣布将停止开发及销售Firefox OS系统的智能手机,尽管该公司宣称Firefox OS未来不会消失,但就像之前退出的另外一款智能手机操作系统WebOS被部分应用到LG的智能电视上一样,仅是...

oschina
2015/12/12
2.3K
18

没有更多内容

加载失败,请刷新页面

加载更多

mybatis缓存的装饰器模式

一般在开发生产中,对于新需求的实现,我们一般会有两种方式来处理,一种是直接修改已有组件的代码,另一种是使用继承方式。第一种显然会破坏已有组件的稳定性。第二种,会导致大量子类的出现...

算法之名
昨天
12
0
单元测试

右键方法 Go To --> Test,简便快速生成测试方法。 相关注解 @RunWith(SpringRunner.class) 表示要在测试环境中跑,底层实现是 jUnit测试工具。 @SpringBootTest 表示启动整个 Spring工程 @A...

imbiao
昨天
3
0
欧拉公式

欧拉公式表达式 欧拉公式的几何意 cosθ + j sinθ 是个复数,实数部分也就是实部为 cosθ ,虚数部分也就是虚部为 j sinθ ,对应复平面单位圆上的一个点。 根据欧拉公式和这个点可以用 复指...

sharelocked
昨天
5
0
burpsuite无法抓取https数据包

1.将浏览器和burpsuite的代理都设置好 2.在浏览器地址栏输入: http://burp 3.下载下面的证书,并将证书导入浏览器 cacert.der

Frost729
昨天
3
0
JeeSite4.x 消息管理、消息推送、消息提醒

实现统一的消息推送接口,包含PC消息、短信消息、邮件消息、微信消息等,无需让所有开发者了解消息是怎么发送出去的,只需了解消息发送接口即可。 所有推送消息均通过 MsgPushUtils 工具类发...

ThinkGem
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部