Android入門知識梳理

清單文件: AndroidManifest.xml

  • package: 一臺手機上,包名用來識別一個應用。也就是說,不能有兩個應用是同一個包名的。
    • adb uninstall 包名 ; adb install apk全路徑
    • 簽名同樣,版本號不低於舊版本,重複安裝會覆蓋
    • 簽名不一樣,新包安裝失敗。
  • versionCode : 版本號。 必須是數字
  • versionName: 版本名。 字符串。能夠是中文
  • apllication
    • label: 應用名字。android

    • icon : 圖標佈局

    • Activitythis

      • label
      • icon
      • name: 所使用Activity的全路徑。 包名+ . +類名。

MainActivity extends Activity

  • onCreate() : 當界面被建立的時候會被調用。
    • setContentView() R.laytout.xx
    • setContentView(new TextView(this));

LinearLayout

-layout_weightSum : 能夠省略spa

  • orientation
    • horizontal
    • vertical

子節點有的屬性

  • layout_weight
  • layout_gravity: 在界面的子組件的位置
    • 若是是水平佈局,只能調整垂直方向的重心
    • 若是是垂直佈局,只能調整水平放的重心。 left right horizontal_center

  • layout_width: 寬度
    • 100px
    • wrap_content: 包裹內容
    • match_parent: 和父組件同樣大
  • layout_height: 高度

TextView

- gravity: 控制內容在組件裏顯式的位置

尺寸數值

  • dp: px=dp*(dpi/160)線程

    dpi: dot per inch: 每英寸的像素點數。能夠調整我屏幕的分辨率,來展現像素密度的問題。code

    • 假設屏幕大小不變 都是兩英寸
    • 若是分辨率是 320*480 那麼像素密度就是 160.那麼 1dp == 1px. 160 dp 就是 160px, 就是屏幕的中心
    • 若是分辨率變成 480960. 像素密度是 240 那麼 1dp(240/160) = 1.5px. 160dp == 240px. 同樣在屏幕中央。
  • px:xml

  • pt:字符串

  • sp: 這個通常是用來指定字符的大小的,功能相似dp。因此通常設置文字大小推薦使用這個sp。string


佈局

LinearLayoutit

  • orientation : 線性佈局佈局方向
    • horizontal: 水平佈局
    • vertical: 垂直佈局
  • 子節點屬性:
    • layout_gravity: 組件的重心。
      • 若是是水平佈局,不能水平居中
      • 若是是垂直佈局,不能垂直居中。

ReletiveLayout:

沒有layout_gravity

  • 若是一個組件是依賴另一個組件佈局的,若是剩餘空間不夠,會被壓縮。

  • 若是所依賴控件比當前控件出現的還晚,也就是找不到對應的id,能夠

    android:layout_above="@+id/center"

    這種方式引用id

子組件常見屬性

RelativeLayout

相對父節點的屬性

  • android:layout_alignParentLeft 是否跟父元素左對齊

  • android:layout_alignParentTop 是否跟父元素頂部對齊

  • android:layout_alignParentRight 是否跟父元素右對齊

  • android:layout_alignParentBottom 是否跟父元素底部對齊

  • android:layout_centerVertical 在父元素中垂直居中

  • android:layout_centerHorizontal 在父元素中水平居中

  • android:layout_centerInParent 在父元素中居中 相對於別的節點的屬性

  • android:layout_alignBaseline 跟指定控件中間對齊(重心對齊)

  • android:layout_alignLeft 跟指定控件左對齊

  • android:layout_alignRight 跟指定控件右對齊

  • android:layout_alignTop 跟指定控件頂部對齊

  • android:layout_alignBottom 跟指定控件底部對齊

  • android:layout_toRightOf 在指定控件的右邊

  • android:layout_toLeftOf 在指定控件的左邊

  • android:layout_above 在指定控件的上邊

  • android:layout_below 在指定控件的下邊

  • 若是一個組件是依賴另一個組件佈局的,若是剩餘空間不夠,會被壓縮。

  • 若是所依賴控件比當前控件出現的還晚,也就是找不到對應的id,能夠

    android:layout_above="@+id/center"

    這種方式引用id


FrameLayout:

能夠使用layout_gravity,並且不限制方向。

AbsoluteLayout:

基本沒用,子組件只能設置 layout_x layout_y

margin padding區別

-margin是設置當前組件距離父組件邊框的爲孩子

  • padding: 設置當前組件添加子組件的時候,有多少的範圍是不能用來顯示的。

按鈕點擊

setClickListener()

Logcat

  • 視圖顯示
  • sysout的區別
  • 不一樣的等級
  • 過濾器
    • 直接搜索 只能搜索text裏的內容
    • 設置filter 經過包名過濾
  • Log.d(tag, msg)
  • Log.v(tag, msg)
  • Log.i(tag, msg)
  • Log.w(tag, msg)
  • Log.e(tag, msg)

Toast

Toast不能在子線程裏show

Toast t = Toast.makeText(MainActivity.this, "btn1被點擊了", Toast.LENGTH_SHORT); t.show();
相關文章
相關標籤/搜索