`
bingoit
  • 浏览: 34285 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

Android UI Layout 之 AbsoluteLayout

阅读更多

在 Android UI 中,最基本的构建单位(building block)是 android.view.View。一个 View 占据屏幕上的一个矩形区域,并负责该区域的绘画和事件处理。View 有一些子类,比如 ImageView、TextView 等可分别用来显示图像、文字…… View 还有一个特殊的子类 ViewGroup,ViewGroup 在 UI layout 中充当“容器”的角色,用以“包含”其他 View 以及 ViewGroup:
viewgroup.png


由于 ViewGroup 是一个 abstract class 无法直接实例化,所以在 layout 中真正充当“容器”角色的应该是 ViewGroup 的子类 :AbsoluteLayout、 FrameLayout、 LinearLayout、 RelativeLayout 等。在实际的 UI 编程中,使用不同的 Layout 类作为容器,对该容器中的各个子 View 的排列方式有很大影响。比如,LinearLayout 中的各个子 View 按照横向或者纵向线性排列;而 AbsoluteLayout 中各个子 View 可以指定以像素为单位的“绝对”位置。AbsoluteLayout 的这种“绝对”定位的布局方式和我们非常熟悉的 Windows 编程中的 SetWindowPos() 或 Form1.Left = 10 的布局方式是一样的,比较简单:

现在我们新建一个 Android 工程中,在其主 Activity 类中添加如下三个成员:
private AbsoluteLayout al;
private TextView tv;
private View v;

改写这个类的 onCreate 方法如下:
public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        // 构造一个 AbsoluteLayout,设置其背景色
        al = new AbsoluteLayout(this);
        al.setBackgroundColor(Color.YELLOW);
        // 构造一个 TextView 并设置其 text 和 背景色
        tv = new TextView(this);
        tv.setText("Android is a software stack for mobile devices that includes an operating system, middleware and key applications. ");
        tv.setBackgroundColor(Color.BLUE);
        // 用该 View 在父 View 中的 width,height,x,y 作为参数构造一个 AbsoluteLayout.LayoutParams
        AbsoluteLayout.LayoutParams tvLP = new AbsoluteLayout.LayoutParams(70, 50, 10, 20);
        // 把这个 TextView 加入到 AbsoluteLayout 中,并应用上一步创建的 LayoutParams。这样 TextView 就会显示在我们指定的位置上了。
        al.addView(tv, tvLP);
       
        v = new View(this);
        v.setBackgroundColor(Color.RED);
        AbsoluteLayout.LayoutParams vLP = new AbsoluteLayout.LayoutParams(70, 50, 90, 70);
        // 也可以先为子 View 设置 LayoutParams,然后再调用一个参数的 ViewGroup.addView(View) 来添加。效果是一样的。
        v.setLayoutParams(vLP);
        al.addView(v);
       
        // 设置 al 为本 Activity 的 content
        // 这样,在该 Activity 被调用时,就会显示该 AbsoluteLayout 和其子 View
        this.setContentView(al);
    }

  • 描述: 3333
  • 大小: 4.6 KB
分享到:
评论

相关推荐

    Android中UI布局Layout

    线性布局LinearLayout 框架布局FrameLayOut RelativeLayout相对布局 绝对布局AbsoluteLayout TableLayout表格布局

    Android实验指导.doc

    了解布局Layout的应用 多种Layout: AbsoluteLayout FrameLayout GridView LinearLayout ListLayout RadioGroup TableLayout ……… 3. 利用布局安排各种控件,设计良好用户界面 "<LinearLayout " "xmlns:android=...

    Android入门之LinearLayout、AbsoluteLayout的用法实例讲解

    本文实例介绍了Android中LinearLayout、AbsoluteLayout的用法,希望能对于初学Android的朋友起到一点帮助作用。具体内容如下: Android 的UI 布局都以Layout 作为容器,并且在上面按照规定排列控件,这方面跟JAVA 的...

    Android实验指导(1).doc

    了解布局Layout的应用 多种Layout: AbsoluteLayout FrameLayout GridView LinearLayout ListLayout RadioGroup TableLayout ……… 3. 利用布局安排各种控件,设计良好用户界面 "<LinearLayout " "xmlns:android=...

    Android 四种动画效果的调用实现代码

    <AbsoluteLayout android:id=”@+id/widget32″ android:layout_width=”fill_parent” android:layout_height=”fill_parent” xmlns:android=”http://schemas.android.com/apk/res/android”> <TextView ...

    Android入门到精通源代码.

    4.1.3 布局组件(Layout) 4.1.4 布局参数(LayoutParams) 4.2 常用Widget组件 4.2.1 文本框视图(TextView) 4.2.2 按钮(Button) 4.2.3 图片按钮(ImageButton) 4.2.4 编辑框(EditText) 4.2.5 多项选择...

    Android五大UI布局的特有属性

    1.LinearLayout线性布局2.RelativeLayout相对布局3.FrameLayout帧布局,空白布局4.GridLayout网格布局5.AbsoluteLayout绝对布局1、排列方向:vertical竖向,horizontal横向如:android:orientation="vertical"2、设置...

    Android开发资料合集-World版!

    3、ANDROID UI LAYOUT 35 3.1、概述 35 3.2、线性布局(LINEAR LAYOUT) 36 3.3、相对布局(RELATIVE LAYOUT) 39 3.4、TABLELAYOUT 40 3.5、ABSOLUTELAYOUT 47 4、ANDROID UI 控件 48 4.1、IMAGEBUTTON 48 4.1.1、...

    Android 开发技巧

    3、ANDROID UI LAYOUT 35 3.1、概述 35 3.2、线性布局(LINEAR LAYOUT) 36 3.3、相对布局(RELATIVE LAYOUT) 39 3.4、TABLELAYOUT 40 3.5、ABSOLUTELAYOUT 47 4、ANDROID UI 控件 48 4.1、IMAGEBUTTON 48 4.1.1、...

    android开发实例大全_王东华

    实例137: 优化Android Layout 559 实例138: 优化Bitmap图片 560 第14章 综合实例--手机地图系统 563 实例139: 使用Google地图开发一个综合 地图系统 563 14.1 项目分析 563 14.1.1 规划UI界面 563 14.1.2 数据...

Global site tag (gtag.js) - Google Analytics