Android项目打包、Eclipse视图和UI控件

Android项目打包、Eclipse视图和UI控件

一、项目打包过程

1. 过程

  1. 编译打包成apk文件
  2. 使用adb安装到设备上
    Android项目打包、Eclipse视图和UI控件_第1张图片

2. adb

  1. 简介

    android debug bridge(Android调试桥)

  2. 作用

    • 连接开发工具和Android设备
    • 安装apk到Android设备上
  3. 命令

    命令 作用
    adb devices 列出所有连接的Android设备
    adb -s device-name install apk-file 安装apk文件(不能有中文字符)
    adb -s device-name uninstall package-name 卸载应用
    adb shell 再使用ls、cd等Linux命令 进入存储目录
    adb start-server 启动adb进程
    adb kill-server 停止adb进程

可以在Device视图中的小三角reset adb

二、Eclipse+ADT的视图

1. DDMS视图

  1. 简介
    Dalvik Debug Monitor Service ,DVM 调试监视服务
  2. 组成

    组成 说明
    Devices 列出连接的所有设备
    Logcat 日志信息窗口
    Emulator Controller 模拟器控制器
    File Explorer 文件浏览器

2. Locat视图

  1. 简介

    日志猫,输出所有日志信息

  2. 类别

    类别 说明
    verbose 冗余信息(最低级别)
    debug 调试信息
    info 正常的信息
    warning 警告信息
    error 错误信息
    assert 系统进程消息
  3. 注意

    • 低级别会显示高级别的信息
    • System.out输出的是info级别的信息
  4. 使用消息过滤器Message Filter过滤出关心的信息

    • Message过滤
    • Application过滤
    • Tag过滤
    • PID过滤
    • 级别过滤
  5. 使用Log类输出日志
Log.i(String tag,String msg);

三、UI控件和布局

1.Activity、View和Window关系

  1. Activity

通过内置的Window对象来展示界面,界面中的View控件捕获事件,通过WindowManagerService传递消息,Android框架再回调Activity中与捕获事件关联的方法,来实现与用户的交互。Activity扮演的是控制器的角色。

private Window mWindow;
public Window getWindow() {
        return mWindow;
    }
public View findViewById(int id) {
        return getWindow().findViewById(id);
    }
  1. View

    • 用户接口组件的基本构建模块,所有UI控件的基类
    • 在屏幕中占用一个矩形区域
    • 负责图形界面的渲染及事件处理
    • 常用操作
      • setProperties 设置属性
      • setFocus 设置焦点
      • setListeners 设置监听
      • setVisibility 设置可见性
    • View及其子类
      Android项目打包、Eclipse视图和UI控件_第2张图片
  2. Window

    • Android中的顶级窗口
    • 每个顶级窗口都有一个Decor View作为布局容器
    • setContentView的实质
 public void setContentView(int layoutResID) {
        getWindow().setContentView(layoutResID);
        initActionBar();
    }

2. ViewGroup

2.1 简介

能容纳其他View的View,是布局和视图容器的基类

2.2 ViewGroup.LayoutParams

  • 布局参数类,是ViewGroup的静态内部类
  • 静态常量:MATCH_PARENT、WRAP_CONTENT
  • 成员方法:
 public LayoutParams(int width, int height) {
            this.width = width;
            this.height = height;
        }
 public LayoutParams(Context c, AttributeSet attrs) {
            TypedArray a = c.obtainStyledAttributes(attrs, R.styleable.ViewGroup_Layout);
            setBaseAttributes(a,
                    R.styleable.ViewGroup_Layout_layout_width,
                    R.styleable.ViewGroup_Layout_layout_height);
            a.recycle();
        }

2.3 常用方法

  • addView(): 向视图组添加View
  • removeView():从视图组移去View
  • getChildCount:获得视图组子控件的数量
  • getChildAt() : 获得具体某个子控件

2.4 Android显示单位

  • px(pixels)像素
  • dp(dip,device independent pixels)设备独立像素

    运行时根据屏幕密度转化为相应的px,最终由px值确定显示区域大小,推荐使用它

  • sp(scaled pixels–best for text size)比例像素

    主要处理字体的大小,可以根据系统的字体自适应,推荐使用

3.常用的UI控件

  1. EditText

    • 普通的文本输入框
    • inputType设置输入类型为textPasword即为密码输入框
    • lines设置行数
  2. TextView

    • 文本显示
  3. RadioGroup

    • 单选分组
  4. RadioButton

    • 单选按钮
  5. CheckBox

    • 复选框
  6. Spinner

    • 下拉选框
    • entries属性,引用资源文件填充数据
    • 资源文件:array.xml
    <string-array name="xxx">
    <item>mmm</item>
    <item>nnn</item>
    </string-array>
  7. Button

    • 普通按钮
  8. ImageButton

    • 图片按钮
  9. ScrollView

    • 只能有一个子节点

4. 常用布局

4.1 LinearLayout

  1. 线性布局特点
    • 子控件是单行或单列,不可重叠
    • orientation属性:设置摆放的方向
    • 子布局可以设置权重(layout_weight):对剩下的尺寸按照权重分配
    • 当设置layout_width/layout_height为0时,所有的尺寸都是剩余的了。
  2. 边距
    • padding内边距,子布局和父布局间的距离
    • margin外边距 同级布局间的距离
  3. 位置和对齐
    • layout_gravity 指定该布局跟在父布局的位置
    • gravity 指定子布局的位置
  4. 注意
    • 线性布局如果是horizontal就只能指定上下,不能指定左右;如果是vertical就只能指定左右,不能指定上下。

4.2 RelativeLayout

  1. 相对布局的特点

    • 默认居于左上角
  2. 相对父元素的位置和对齐方式

    • layout_alignParentTop=”true|false”
    • layout_alignParentRight=”true|false”
    • layout_alignParentBottom=”true|false”
    • layout_alignParentLeft=”true|false”
    • layout_alignParentStart=”true|false” 跟父元素的开始边缘对齐
    • layout_alignParentEnd=”true|false” 跟父元素的结束边缘对齐
    • layout_centerVertical=”true|false” 垂直居中
    • layout_centerHorizontal=”true|false” 水平居中
    • layout_centerInParent=”true|false” 水平垂直都居中
  3. 相对于另一兄弟元素的位置和对齐方式

    • layout_toLeftOf=”@id/xx”
    • layout_toRightOf=”@id/xx”
    • layout_above=”@id/xx” 上面
    • layout_below=”@id/xx” 下面
    • layout_alignLeft=”@id/xx” 左对齐
    • layout_alignRight=”@id/xx” 右对齐
    • layout_alignTop=”@id/xx” 顶部对齐
    • layout_alignBottom=”@id/xx” 底部对齐
    • layout_alignBaseline=”@id/xx” 跟另一元素的基线对齐

4.3 FrameLayout

  1. 帧布局的特点
    • 默认在顶部,左对齐,会覆盖,像相对布局
    • 对齐方式使用layout_gravity指定,像线性布局

4.4 TableLayout

  1. 表格布局的特点
    • LinearLayout的子类
    • 只有行的概念,没有列的概念
    • 通过嵌套TableRow来定义行,再在TableRow中定义单元格
    • TableRow不用设置宽高
    • TableRow中可以设置权重(layout_weight)

2.5 AbsoluteLayout

  1. 绝对布局的特点
    • 相对于父控件的xy坐标确定位置(layout_x,layout_y)
    • 子控件可以重叠
    • 几乎不使用

你可能感兴趣的:(eclipse,android,UI,view)