Android項目打包、Eclipse視圖和UI控件

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)
    • 子控件可以重疊
    • 幾乎不使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章