Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7675810
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: Android平台

2015-11-13 11:43:39

简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置

 

  

       

       

  

 

为了适应各种界面风格,Android提供了5种布局,这5种布局分别是:FrameLayout(框架布局)LinearLayout(线性布局)RelativeLayout(相对布局)TableLayout(表格布局)AbsoluteLayout(绝对布局)等。

利用以上5种布局我们可以再手机屏幕上随心所欲的摆放各种控件。

 

Android视图的创建

Android系统中,何的可视化控件都是从android.view.View继承的。开发人员可以使用两种方法来创建视图。

第一种:是使用XML方式来配置View的相关属性,然后装载这些View

第二种:是完全使用java代码来创建View

Xml布局文件是android系统中定义的视图常用方法,所有的布局文件必须包含在res/layout目录中。定义XML布局的命名和定义注意事项如下:

xml布局文件必须是以xml文件名结束,命名必须是符合java的规范

每一个xml布局文件的根节点可以是任意的控件标签

xml布局文件的根节点必须是包含android的命名空间,命名空间必须是xmlns:android=

xml文件布局中的标签指定的id需要使用这样的格式: android:id=@+id/标签名称“该标记会保存在R文件中

每一个视图的id都会在R类中生成与之对应的变量,因此视图ID的值必须是符合java规范的

如果是要使用xml布局文件,通常需要oncreate方法中使用setContentView来加载指定的xml布局文件

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

获得xml布局文件注意一下几点:

使用findViewById之前需要使用setContentView先加载xml文件、布局文件会抛出异常信息。也就是说findViewById方法要在setContentView之后才能使用

所有的xml文件布局文件的视图id都在R类生成相对应的变量

 

Android中长度单位介绍

Android表示单位长度的方式通常有三种表示方式。

px:表示屏幕实际的象素。例如,320*480的屏幕在横向有320个象素,在纵向有480个象素。

dp(dip): 是屏幕的物理尺寸。大小为1英寸的1/72

sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。

设计技巧:

如果设置表示长度、高度等属性时可以使用dp sp。但如果设置字体,需要使用sp

dp是与密度无关,sp除了与密度无关外,还与scale无关

如果使用dpsp,系统会根据屏幕密度的变化自动进行转换。

 

Android布局中常用属性介绍

layout_margin是控件边缘相对于父控件的边距

layout_padding是控件内容相对于控件边缘的边距

gravitylayout_gravity的区别

android:gravityandroid:layout_gravity

他们的区别在于:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式

 

线性布局LinearLayout

线性布局是最常用的布局线性布局在xml文件中使用<LinearLayout>来定义

线性布局可以分为水平和垂直的方向的布局,可以通过android:orientation=vertical”来定义方向,该属性可以有horizontalvertical两个方向

标签中有一个很重要的属性gravity,该属性用于控制布局中视图的位置,如果设置多个值需要使用  | 进行分隔,属性如下:

android:layout_weight权重的描述

layout_weight 用于给一个线性布局中的诸多视图的重要度赋值。

     所有的视图都有一个layout_weight值,默认为零,意思是需要显示      多大的视图就占据多大的屏幕空 间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体 layout_weight值和在其它视图屏幕布 局的layout_weight值中所占的比率而定。

 

框架布局FrameLayOut

框架布局是最简单的布局方式、所有添加到这个布局中的视图都是以层叠的方式显示。第一个添加到框架布局中的视图显示在最底层,最后一个被放在最顶层,上一层的视图会覆盖下一层的视图,因此框架布局类似堆栈布局。

 

RelativeLayout相对布局

RelativeLayout可以设置某一个视图相对于其他视图的位置,这些位置可以包括上下左右等

绝对布局AbsoluteLayout

所谓绝对布局(AbsoluteLayout),是指屏幕中所有控件的摆放由开发人员通过设置控件的坐标来指定,控件容器不再负责管理其子控件的位置。由于子控件的位置和布局都是通过坐标来指定,因此AbsoluteLayout类中没有特殊的属性和方法。

可以通过android:layout_xandroid:layout_y属性可以设置视图的横坐标和纵坐标的位置。

阅读(1688) | 评论(0) | 转发(0) |
0

上一篇:Activity

下一篇:Android 的体系结构

给主人留下些什么吧!~~