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

本文详细介绍了Android项目打包的过程,包括adb工具的使用、Eclipse+ADT的视图操作以及UI控件和布局的实现方法。重点阐述了如何利用ADB进行设备管理,如何在Eclipse中查看和操作DDMS视图与Locat视图的日志信息,以及UI控件如Activity、View、Window之间的关系和常用布局如LinearLayout、RelativeLayout等的使用。此外,还深入探讨了UI控件如EditText、TextView、RadioGroup、CheckBox等的特性与实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

一、项目打包过程

1. 过程

  1. 编译打包成apk文件
  2. 使用adb安装到设备上
    这里写图片描述

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及其子类
      这里写图片描述
  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)
    • 子控件可以重叠
    • 几乎不使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值