2018-2019-2 20189205《移動平臺應用開發實踐》第九周做業

Android 學習

定製視圖

Android界面在自定義控件時,常常須要使用canvas、paint等類,在canvas類中,繪畫基本都是靠drawXXX()方法來完成的,在這些方法中,不少時候都須要用到paint類型的參數,本文先對paint類經常使用的一些設置作個簡單總結
Canvas類就是表示一塊畫布,你能夠在上面畫你想畫的東西。固然,你還能夠設置畫布的屬性,如畫布的顏色/尺寸等。
Canvas提供了以下一些方法:android

  • Canvas():建立一個空的畫布,可使用setBitmap()方法來設置繪製的具體畫布;
  • Canvas(Bitmap bitmap):以bitmap對象建立一個畫布,則將內容都繪製在bitmap上,bitmap不得爲null;
  • Canvas(GL gl):在繪製3D效果時使用,與OpenGL有關;
  • drawColor:設置畫布的背景色;
  • setBitmap:設置具體的畫布;
  • clipRect:設置顯示區域,即設置裁剪區;
  • isOpaque:檢測是否支持透明;
  • rotate:旋轉畫布;

Color類定義了多個顏色代碼字段,以及用於建立和轉換顏色int的方法。canvas

而Paint類表明了Canvas上的畫筆、畫刷、顏料等等,其經常使用方法有:模塊化

圖形繪製相關:佈局

  • set(Paint src) 根據已有畫筆的屬性進行賦值
  • setColor(int color) 設置顏色
  • setAlpha(int alpha) 設置透明度,alpha爲透明度,取值範圍爲0~255,數值越小越透明
  • setARGB(int a, int r, int g, int b) 設置透明度和顏色,a表明透明度,r,g,b表明顏色值
  • setAntiAlias(boolean aa) 設置是否使用抗鋸齒功能,比較耗資源,減慢繪製速度
  • setDither(boolean dither) 設定是否使用圖像抖動,如true,繪製出來的圖片顏色更飽滿、清晰
  • setStyle(android.graphics._Original_Paint.Style style) 設置畫筆的樣式,爲FILL,FILL_OR_STROKE,或STROKE

文字繪製相關:學習

  • setTextSize(float textSize) 設置文字大小
  • setTextScaleX(float scaleX) 設置文字x軸的縮放比例,能夠實現文字的拉伸效果
  • setTextSkewX(float skewX) 設置文字傾斜弧度
  • setUnderlineText(boolean flag) 設置文字下劃線效果
  • setStrikeThruText(boolean flag) 設置刪除線效果
  • setTypeface(Typeface typeface) 設置字體風格
  • setTextAlign(android.graphics._Original_Paint.Align align) 設置文字的對齊方向

片斷

Android 在 Android 3.0(API 級別 11)中引入了片斷,主要是爲了給大屏幕(如平板電腦)上更加動態和靈活的 UI 設計提供支持。因爲平板電腦的屏幕比手機屏幕大得多,所以可用於組合和交換 UI 組件的空間更大。利用片斷實現此類設計時,無需管理對視圖層次結構的複雜更改。 經過將 Activity 佈局分紅片斷,能夠在運行時修改 Activity 的外觀,並在由 Activity 管理的返回棧中保留這些更改。
Fragment 表示 Activity 中的行爲或用戶界面部分。咱們能夠將多個片斷組合在一個 Activity 中來構建多窗格 UI,以及在多個 Activity 中重複使用某個片斷。能夠將片斷視爲 Activity 的模塊化組成部分,它具備本身的生命週期,能接收本身的輸入事件,而且在 Activity 運行時添加或移除片斷(有點像在不一樣 Activity 中重複使用的「子 Activity」)。
片斷必須始終嵌入在 Activity 中,其生命週期直接受宿主 Activity 生命週期的影響。 例如,當 Activity 暫停時,其中的全部片斷也會暫停;當 Activity 被銷燬時,全部片斷也會被銷燬。 不過,當 Activity 正在運行(處於已恢復生命週期狀態)時,咱們能夠獨立操縱每一個片斷,如添加或移除它們。 當執行此類片斷事務時,咱們也能夠將其添加到由 Activity 管理的返回棧 — Activity 中的每一個返回棧條目都是一條已發生片斷事務的記錄。 返回棧讓用戶能夠經過按返回按鈕撤消片斷事務(後退)。字體

要想建立片斷,咱們必須建立 Fragment 的子類(或已有其子類)。Fragment 類的代碼與 Activity 很是類似。它包含與 Activity 相似的回調方法,如 onCreate()、onStart()、onPause() 和 onStop()。實際上,若是要將現有 Android 應用轉換爲使用片斷,可能只需將代碼從 Activity 的回調方法移入片斷相應的回調方法中。動畫

一般,咱們至少應實現如下生命週期方法:設計

  • onCreate() 系統會在建立片斷時調用此方法。您應該在實現內初始化您想在片斷暫停或中止後恢復時保留的必需片斷組件。
  • onCreateView() 系統會在片斷首次繪製其用戶界面時調用此方法。 要想爲您的片斷繪製 UI,您今後方法中返回的 View 必須是片斷佈局的根視圖。若是片斷未提供 UI,您能夠返回 null。
  • onPause() 系統將此方法做爲用戶離開片斷的第一個信號(但並不老是意味着此片斷會被銷燬)進行調用。 您一般應該在此方法內確認在當前用戶會話結束後仍然有效的任何更改(由於用戶可能不會返回)。
    大多數應用都應該至少爲每一個片斷實現這三個方法,但您還應該使用幾種其餘回調方法來處理片斷生命週期的各個階段。 處理片斷生命週期部分對全部生命週期回調方法作了更詳盡的闡述。

此外還有如下幾個擴展子類:對象

  • DialogFragment 顯示浮動對話框。使用此類建立對話框可有效地替代使用 Activity 類中的對話框幫助程序方法,由於您能夠將片斷對話框歸入由 Activity 管理的片斷返回棧,從而使用戶可以返回清除的片斷。
  • ListFragment 顯示由適配器(如 SimpleCursorAdapter)管理的一系列項目,相似於 ListActivity。它提供了幾種管理列表視圖的方法,如用於處理點擊事件的 onListItemClick() 回調。
  • PreferenceFragment 以列表形式顯示 Preference 對象的層次結構,相似於 PreferenceActivity。這在爲您的應用建立「設置」 Activity 時頗有用處。

動畫

屬性動畫(Property Animation)是在 Android 3.0(API 11)後才提供的一種全新動畫模式。其經過,在必定時間間隔內,不斷對值進行改變,並不斷將該值賦給對象的屬性,從而實現該對象在該屬性上的動畫效果。生命週期

ValueAnimator類

這屬性動畫機制中 最核心的一個類,其經過不斷控制 值 的變化,再不斷 手動 賦給對象的屬性,從而實現動畫效果。

ValueAnimator類中有3個重要方法:

  • ValueAnimator.ofInt(int values)將初始值以整型數值的形式過渡到結束值;
  • ValueAnimator.ofFloat(float values)將初始值以浮點型數值的形式過渡到結束值;
  • ValueAnimator.ofObject(int values)將初始值以對象的形式過渡到結束值;

ObjectAnimator類

該類直接對對象的屬性值進行改變操做,從而實現動畫效果,如直接改變 View的 alpha 屬性 從而實現透明度的動畫效果,其本質原理是經過不斷控制值的變化,再不斷自動賦給對象的屬性,從而實現動畫效果。

ObjectAnimator與 ValueAnimator類的區別:

  • ValueAnimator 類是先改變值,而後手動賦值給對象的屬性從而實現動畫;是間接對對象屬性進行操做;
  • ObjectAnimator 類是先改變值,而後自動賦值給對象的屬性從而實現動畫;是直接對對象屬性進行操做;
相關文章
相關標籤/搜索