Android學習(四)

教材學習內容總結

圖形和定製視圖

硬件加速

  • Android APILevel14及其以上版本爲目標的應用程序來講,硬件加速是默承認用的。
  • 可經過android:hardwareAccelerated="false"來關閉活動或應用的硬件加速。

建立一個定製視圖

  • 要建立一個定製視圖,須要擴展android.view.View類或其一個子類,而且覆蓋其onDraw方法。
  • onDraw方法的簽名爲:java

    protected void onDraw (android.graphics.Canvas canvas)
  • 能夠使用Canvas中的方法來繪製圖形和文本,也能夠建立路徑和區域來繪製更多的形狀。
  • Canvas中的大多數的繪製方法都須要一個Paint。應該在類級別建立Paint,並讓能夠在onDraw方法中使用,而不是在onDraw方法中建立Canvas。android

,而且讓活動來處理它。canvas

多面板佈局

  • 在單面板佈局【e.g.手機】中,顯式地活動一般包含單個的片斷,這個片斷每每反過來包含一個ListView,選中ListView上的一項,將會開啓另外一個活動。
  • 在多面板佈局【e.g.平板電腦】中,一般有一個足夠大容納兩個面板的活動。能夠使用相同的片斷,可是這一次,當選中一個項的時候,它將會更新第2個片斷,而不是開始另外一個活動。

動畫

要點1:屬性動畫

  • 屬性動畫背後的動力就是android.animation.Animator類,這是一個抽象類,要使用其子類(ValueAnimator或ObjectAnimator)來建立動畫。此外,AnimatorSet類是Animator的另外一個子類,設計用來以並行或連續的方式運行多個動畫。

要點2:Animator類

  • Animator有一個方法用來設置要進行動畫的目標對象(setTarget),還有一個方法用來設置時長(setDuration),還有一個方法用來啓動動畫(start)。能夠在一個Animator對象上屢次調用start方法。
  • Animator提供了一個addListener方法,它接受一個Animator.AnimatorListener實例。AnimatorListener接口定義於Animator類中,而且提供當特定的事件發生的時候系統所調用的方法。若是想要相應某一個事件的話,能夠實現這些方法中的一個。數組

    • void onAnimationStart(Animator animation);
    • void onAnimationEnd(Animator animation);
    • void onAnimationCancel(Animator animation);
    • void onAnimationRepeat(Animator animation);

valueAnimator

ValueAnimator它自己並不會做用與任何一個屬性,它自己也不會提供任何一種動畫。它簡單的來講,就是一個數值發生器,它能夠產生你想要的各類數值。佈局

objectAnimator

ObjectAnimator執行的屬性動畫,都是根據java的反射機制來設置的,所以設置動畫的目標對象的屬性必須有getter 和setter方法。學習

教材學習中的問題和解決過程

  • 問題1: 在fragment不該該寫監聽器,應該寫出對一個事件的相應並讓活動來處理它。 這個tip不知道如何實現。
  • 問題1解決方案:直接在fragment寫活動的方法。
    mainActivity.playService.isPlaying())

代碼調試中的問題和解決過程

  • 問題1:
    當調試點擊listview時,每調一次都須要重啓一次模擬器。動畫

  • 問題1解決方案:
    debug中除了step in等還有revert cursor這個方法能夠省去重啓的步驟。debug

代碼託管

上週考試錯題總結

  • 錯題1:
    Multi-dimensional arrays that contain arrays of different lengths in any one dimension are called ?.(包括不一樣長度數組的多維數組叫作?)
    A.ragged arrays(鋸齒狀數組)
    B.static arrays(靜態數組)
    C.two-dimensional arrays(二維數組)
    D.constant arrays(常量數組)
    E.overloaded arrays(重載數組)
    正確答案:A
    鋸齒狀數組初始化方法:int [][] raggedArray = new int[10][];設計

    學習進度條

    代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
    目標 5000行 30篇 400小時
    第一週 150/200 2/2 20/20
    第二週 200/400 1/3 20/40
    第三週 100/500 1/4 10/50
    第四周 200/700 1/5 15/65
    第五週 1486/2186 1/6 15/80
    第六週 1400/3586 1/7 18/98
    第七週 1400/5000 1/8 18/116
    第八週 1200/6200 1/9 15/131
    第九周 800/7000 2/11 12/143
  • 計劃學習時間:15小時調試

  • 實際學習時間:12小時

參考資料

相關文章
相關標籤/搜索