android筆記-新特性

Fragment(重要)

  • 用途:在一個Activity里切換界面,切換界面時只切換Fragment里面的內(nèi)容

  • 生命周期方法跟Activity一致骚勘,可以理解把其為就是一個Activity

  • fragment切換時會銷毀舊的隘膘,再創(chuàng)建新的

  • 定義布局文件作為Fragment的顯示內(nèi)容

      //此方法返回的View就會被顯示在Fragment上
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          //用布局文件填充成一個View對象疑故,返回出去,那么就顯示在Fragment上了
          View v = inflater.inflate(R.layout.fragment01, null);
          return v;     
      }
    
  • 把Fragment顯示至指定ViewGroup中

      //把fragment顯示至界面
      //new出fragment對象
      Fragment01 fg = new Fragment01();
      FragmentManager fm = getFragmentManager();
      //開啟事務(wù)
      FragmentTransaction ft = fm.beginTransaction();
      //把fragment對象顯示到指定資源id的組件里面
      ft.replace(R.id.fl, fg);
      ft.commit();
    

生命周期(重要)

  • fragment切換時舊fragment對象會銷毀弯菊,新的fragment對象會被創(chuàng)建

低版本兼容(熟悉)

  • 在support-v4.jar包中有相關(guān)api纵势,也就是說fragment可以在低版本模擬器運行

動畫(重要)

幀動畫(重要)

一張張圖片不斷的切換,形成動畫效果

  • 在drawable目錄下定義xml文件管钳,子節(jié)點為animation-list钦铁,在這里定義要顯示的圖片和每張圖片的顯示時長

      <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
          <item android:drawable="@drawable/g1" android:duration="200" />
          <item android:drawable="@drawable/g2" android:duration="200" />
          <item android:drawable="@drawable/g3" android:duration="200" />
      </animation-list>
    
  • 在屏幕上播放幀動畫

      ImageView iv = (ImageView) findViewById(R.id.iv);
      //把動畫文件設(shè)置為imageView的背景
      iv.setBackgroundResource(R.drawable.animations);
      AnimationDrawable ad = (AnimationDrawable) iv.getBackground();
      //播放動畫        
      ad.start();
    

補(bǔ)間動畫(重要)

  • 原形態(tài)變成新形態(tài)時為了過渡變形過程,生成的動畫就叫補(bǔ)間動畫
  • 位移才漆、旋轉(zhuǎn)牛曹、縮放、透明
位移:
  • 參數(shù)10指的是X的起點坐標(biāo)醇滥,但不是指屏幕x坐標(biāo)為10的位置黎比,而是imageview的 真實X + 10

  • 參數(shù)150指的是X的終點坐標(biāo),它的值是imageview的 真實X + 150

      //創(chuàng)建為位移動畫對象腺办,設(shè)置動畫的初始位置和結(jié)束位置
      TranslateAnimation ta = new TranslateAnimation(10, 150, 20, 140);
    
  • x坐標(biāo)的起點位置焰手,如果相對于自己,傳0.5f怀喉,那么起點坐標(biāo)就是 真實X + 0.5 * iv寬度

  • x坐標(biāo)的終點位置书妻,如果傳入2,那么終點坐標(biāo)就是 真實X + 2 * iv的寬度

  • y坐標(biāo)的起點位置躬拢,如果傳入0.5f躲履,那么起點坐標(biāo)就是 真實Y + 0.5 * iv高度

  • y坐標(biāo)的終點位置,如果傳入2聊闯,那么終點坐標(biāo)就是 真實Y + 2 * iv高度

      TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 2, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 2);
    
  • 動畫播放相關(guān)的設(shè)置

      //設(shè)置動畫持續(xù)時間
      ta.setDuration(2000);
      //動畫重復(fù)播放的次數(shù)
      ta.setRepeatCount(1);
      //動畫重復(fù)播放的模式
      ta.setRepeatMode(Animation.REVERSE);
      //動畫播放完畢后工猜,組件停留在動畫結(jié)束的位置上
      ta.setFillAfter(true);
      //播放動畫
      iv.startAnimation(ta);
    
縮放:
  • 參數(shù)0.1f表示動畫的起始寬度是真實寬度的0.1倍

  • 參數(shù)4表示動畫的結(jié)束寬度是真實寬度的4倍

  • 縮放的中心點在iv左上角

      ScaleAnimation sa = new ScaleAnimation(0.1f, 4, 0.1f, 4);
    
  • 參數(shù)0.1f和4意義與上面相同

  • 改變縮放的中心點:傳入的兩個0.5f,類型都是相對于自己菱蔬,這兩個參數(shù)改變了縮放的中心點

  • 中心點x坐標(biāo) = 真實X + 0.5 * iv寬度

  • 中心點Y坐標(biāo) = 真實Y + 0.5 * iv高度

    ScaleAnimation sa = new ScaleAnimation(0.1f, 4, 0.1f, 4, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

透明:
  • 0為完全透明篷帅,1為完全不透明

      AlphaAnimation aa = new AlphaAnimation(0, 0.5f);
    
旋轉(zhuǎn):
  • 20表示動畫開始時的iv的角度

  • 360表示動畫結(jié)束時iv的角度

  • 默認(rèn)旋轉(zhuǎn)的圓心在iv左上角

      RotateAnimation ra = new RotateAnimation(20, 360);
    
  • 20,360的意義和上面一樣

  • 指定圓心坐標(biāo),相對于自己拴泌,值傳入0.5魏身,那么圓心的x坐標(biāo):真實X + iv寬度 * 0.5

  • 圓心的Y坐標(biāo):真實Y + iv高度 * 0.5

      RotateAnimation ra = new RotateAnimation(20, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    
所有動畫一起飛
    //創(chuàng)建動畫集合
    AnimationSet set = new AnimationSet(false);
    //往集合中添加動畫
    set.addAnimation(aa);
    set.addAnimation(sa);
    set.addAnimation(ra);
    iv.startAnimation(set);

屬性動畫(重要)

  • 補(bǔ)間動畫,只是一個動畫效果蚪腐,組件其實還在原來的位置上箭昵,xy沒有改變

位移:

  • 第一個參數(shù)target指定要顯示動畫的組件

  • 第二個參數(shù)propertyName指定要改變組件的哪個屬性

  • 第三個參數(shù)values是可變參數(shù),就是賦予屬性的新的值

  • 傳入0回季,代表x起始坐標(biāo):當(dāng)前x + 0

  • 傳入100家制,代表x終點坐標(biāo):當(dāng)前x + 100

      //具有g(shù)et正林、set方法的成員變量就稱為屬性
      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "translationX", 0, 100) ;
    

縮放:

  • 第三個參數(shù)指定縮放的比例

  • 0.1是從原本高度的十分之一開始

  • 2是到原本高度的2倍結(jié)束

      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "scaleY", 0.1f, 2);
    

透明:

  • 透明度,0是完全透明颤殴,1是完全不透明

      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "alpha", 0.1f, 1);
    

旋轉(zhuǎn)

  • rotation指定是順時針旋轉(zhuǎn)

  • 20是起始角度

  • 270是結(jié)束角度

      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "rotation", 20, 270);
    
  • 屬性指定為rotationX是豎直翻轉(zhuǎn)

  • 屬性指定為rotationY是水平翻轉(zhuǎn)

      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "rotationY", 20, 180);
    

可變參數(shù)

  • 第三個參數(shù)可變參數(shù)可以傳入多個參數(shù)觅廓,可以實現(xiàn)往回位移(旋轉(zhuǎn)、縮放诅病、透明)

      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "translationX", 0, 70, 30, 100) ;
    

所有動畫一起飛

    //創(chuàng)建動畫師集合
    AnimatorSet set = new AnimatorSet();
    //設(shè)置要播放動畫的組件
    set.setTarget(bt);
    //所有動畫有先后順序的播放
    //set.playSequentially(oa, oa2, oa3, oa4);
    //所有動畫一起播放
    set.playTogether(oa, oa2, oa3, oa4);
    set.start();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哪亿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贤笆,更是在濱河造成了極大的恐慌蝇棉,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芥永,死亡現(xiàn)場離奇詭異篡殷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)埋涧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門板辽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棘催,你說我怎么就攤上這事劲弦。” “怎么了醇坝?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵邑跪,是天一觀的道長。 經(jīng)常有香客問我呼猪,道長画畅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任宋距,我火速辦了婚禮轴踱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谚赎。我一直安慰自己淫僻,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布壶唤。 她就那樣靜靜地躺著嘁傀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪视粮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天橙凳,我揣著相機(jī)與錄音蕾殴,去河邊找鬼笑撞。 笑死,一個胖子當(dāng)著我的面吹牛钓觉,可吹牛的內(nèi)容都是我干的茴肥。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼荡灾,長吁一口氣:“原來是場噩夢啊……” “哼瓤狐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起批幌,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤础锐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后荧缘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體皆警,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年截粗,在試婚紗的時候發(fā)現(xiàn)自己被綠了信姓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡绸罗,死狀恐怖意推,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情珊蟀,我是刑警寧澤菊值,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站系洛,受9級特大地震影響俊性,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜描扯,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一定页、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绽诚,春花似錦典徊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蜂桶,卻和暖如春儡毕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工腰湾, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留雷恃,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓费坊,卻偏偏與公主長得像倒槐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子附井,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Animation Animation類是所有動畫(scale讨越、alpha、translate永毅、rotate)的基...
    四月一號閱讀 1,915評論 0 10
  • 1 背景 不能只分析源碼呀把跨,分析的同時也要整理歸納基礎(chǔ)知識,剛好有人微博私信讓全面說說Android的動畫卷雕,所以今...
    未聞椛洺閱讀 2,705評論 0 10
  • 上一章 書中的示例代碼:github 本章主要介紹的是Android動畫機(jī)制和使用技巧 1.Android視圖動畫...
    青藤綠閱讀 1,663評論 3 32
  • 大學(xué)生活至此已經(jīng)一個月零一周节猿。頭一個月的感受,總覺得每個人都有很多話想說漫雕。 美術(shù)學(xué)院不大滨嘱,其實差不多,夠用了浸间。嘴上...
    601bb0ffa88d閱讀 341評論 0 0