<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Android5.0新特性之——控件移動動畫(初級)

      最近開發,UI大牛們設計了好多很炫酷吊炸天的動畫,不由得重新學習了一下5.0的ObjectAnimator動畫。

      ObjectAnimator動畫的原理,通過反射控件的setXXX方法,改變控件的實際屬性值,來達到控件狀態改變的動畫效果。

      首先話不多說,先上效果圖。

      我們先介紹幾個演示效果中用到的ObjectAnimator的方法

      我這里只針對ofInt()和ofFlot方法進行說明,其他的方法原理類似,這里不做過多說明。

      首先是第一個字體變色的效果。這里用的是ofInt方法。代碼比較簡單:

                //設置色值
                      ObjectAnimator textColorAnim = ObjectAnimator.ofInt(view, "textColor", 0xff000000, 0xff0000ff, 0xff00ff00);
                      //設置動畫時間
                      textColorAnim.setDuration(3000);
                      //設置重復模式
                      textColorAnim.setRepeatMode(ValueAnimator.REVERSE);
                      textColorAnim.start();

      這里需要說明一點,我定義的view,是Button類型的控件,所以里面是有setTextColor這個屬性的。其中可以看出我設置的是黑、藍、綠三個顏色。但是我的效果圖是有很多種顏色的變化,這是因為在從藍色到綠色進行過度的時候,中間做了補間色的轉變。具體的可以百度一下色盤。

      第二個我們說一下ofFloat()方法,原理依然是設置控件,通過反射到控件的setXXX方法,對控件的屬性進行更改。下面上代碼:

      ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(btnRotationX, "rotationX", 0, 360);
      objectAnimator.setDuration(3000);
      objectAnimator.start();

      這里說明一下,首先,在華為mate8和mate7系統下,控件的setRotationX方法和setRotationY這兩個方法調用,會有問題。一旦調用,就會出現控件消失的情況。這里是華為系統的問題。不做過多的介紹。也就是如果在華為mate8和mate7系統下,調用這個動畫,展示動畫的控件,就會出現消失的問題。所以這里慎用!!!!!

       

       

      最后說一個高級用法,自定義控件的動畫效果。也就是效果圖中的最后一個效果。

      直接貼代碼:

      首先是自定義控件CustomView(這里為了節省篇幅,構造方法沒有粘貼)

      public class CustomView extends android.support.v7.widget.AppCompatTextView {
          private float redR=0;
          @Override
          protected void onDraw(Canvas canvas) {
              super.onDraw(canvas);
              Paint paint = new Paint();
              paint.setColor(Color.RED);
              paint.setStyle(Paint.Style.FILL);
              paint.setAntiAlias(true);
              canvas.drawCircle(200,20,redR, paint);
          }
      
          public void setRedR(float redR) {
              this.redR = redR;
           //強制刷新頁面 invalidate(); } }

      布局文件:

      就不貼代碼了,不同的目錄下,控件的引用方式也是不一樣的。這里提醒一下,記得寫上控件的寬高,我寫的高是100dp,寬是全屏。

      動畫代碼:

              ObjectAnimator redR = ObjectAnimator.ofFloat(custom, "redR", 0, 100);
              redR.setDuration(3000);
              redR.setRepeatCount(ValueAnimator.INFINITE);
              redR.setRepeatMode(ValueAnimator.REVERSE);
              redR.start();

      自定義控件,就是通過映射custom的setRedR方法,進行動態的更改custom的屬性值。

       

      如有不足之處,請各位大牛進行指導

       

      我的博客即將入駐“云棲社區”,誠邀技術同仁一同入駐。

       我的博客即將搬運同步至騰訊云+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=11fyo5nbpnz79

      posted @ 2018-08-27 11:07  張旭小俠  閱讀(1356)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 99热门精品一区二区三区无码| 婷婷五月综合丁香在线| 亚洲AV无码国产在丝袜APP| 亚洲色一色噜一噜噜噜| 国产精品小一区二区三区| 一区二区亚洲人妻精品| 在线a级毛片无码免费真人| 免费无码又爽又刺激高潮虎虎视频| 香蕉EEWW99国产精选免费| 欧美日韩国产综合草草| 岛国大片在线免费播放| 无码少妇一区二区| 国产一区二区精品久久凹凸| 国产精品第一页中文字幕| 国产精品自拍自在线播放| 国产欧美日韩亚洲一区二区三区| 日韩人妻无码一区二区三区俄罗斯 | 国产中文三级全黄| 亚洲色大成网站WWW久久| 超碰人人超碰人人| 国产日产欧产系列| 国产日产亚洲系列av| 猫咪www免费人成网站| 久久精品第九区免费观看| 国产首页一区二区不卡| 99热这里只有精品免费播放| 色秀网在线观看视频免费| 精选国产av精选一区二区三区| 国产真实野战在线视频| 国产一区二区不卡精品视频| 91中文字幕一区在线| 天天澡日日澡狠狠欧美老妇| 日韩一区在线中文字幕| 色综合中文综合网| 日本高清视频网站www| 国产999久久高清免费观看| 久久er99热精品一区二区| 开心五月深深爱天天天操| 国产中文字幕精品视频| 宁国市| 亚洲欧美色综合影院|