日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于github上开源nineoldandroids兼容动画的笔记

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于github上开源nineoldandroids兼容动画的笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

github上面有個樣例非常好的列舉了NineOldAndroids兼容動畫的使用方法。下載了下來然后執行測試了下:


由于要引用nineoldandroids的項目,我這里直接把它的源碼拷貝進去了,用做測試。

android 11版本號也有ObjectAnimator動畫屬性,可是不能兼容10版本號甚至8的版本號號,國內這個版本號號的手機份額還是不小的。

所以兼容也必須僅僅實用這個開源的了。

static {PROXY_PROPERTIES.put("alpha", PreHoneycombCompat.ALPHA);PROXY_PROPERTIES.put("pivotX", PreHoneycombCompat.PIVOT_X);PROXY_PROPERTIES.put("pivotY", PreHoneycombCompat.PIVOT_Y);PROXY_PROPERTIES.put("translationX", PreHoneycombCompat.TRANSLATION_X);PROXY_PROPERTIES.put("translationY", PreHoneycombCompat.TRANSLATION_Y);PROXY_PROPERTIES.put("rotation", PreHoneycombCompat.ROTATION);PROXY_PROPERTIES.put("rotationX", PreHoneycombCompat.ROTATION_X);PROXY_PROPERTIES.put("rotationY", PreHoneycombCompat.ROTATION_Y);PROXY_PROPERTIES.put("scaleX", PreHoneycombCompat.SCALE_X);PROXY_PROPERTIES.put("scaleY", PreHoneycombCompat.SCALE_Y);PROXY_PROPERTIES.put("scrollX", PreHoneycombCompat.SCROLL_X);PROXY_PROPERTIES.put("scrollY", PreHoneycombCompat.SCROLL_Y);PROXY_PROPERTIES.put("x", PreHoneycombCompat.X);PROXY_PROPERTIES.put("y", PreHoneycombCompat.Y);}
支持的動畫屬性名有上面那些

支持上下移動的動畫實例:

@Overrideprotected void setupAnimation(View view) {// TODO Auto-generated method stub // getAnimatorSet().playTogether( // ObjectAnimator.ofFloat(view, "translationY", 0,-300).setDuration(500), // ObjectAnimator.ofFloat(view, "translationY", -300,300).setDuration(900) // ); // getAnimatorSet().play(ObjectAnimator.ofFloat(view, "translationY", 0,-300).setDuration(500));getAnimatorSet().playSequentially(ObjectAnimator.ofFloat(view, "translationY", 0,-100).setDuration(400),ObjectAnimator.ofFloat(view, "translationY", -100,100).setDuration(800),ObjectAnimator.ofFloat(view, "translationY", 100,-100).setDuration(800),ObjectAnimator.ofFloat(view, "translationY", -100,100).setDuration(800),ObjectAnimator.ofFloat(view, "translationY", 100,0).setDuration(400));}
也能夠用以下的方法:

@Overrideprotected void setupAnimation(View view) {getAnimatorSet().playTogether(ObjectAnimator.ofFloat(view, "translationY", 0,-100,-200,-300,-200,-100,0,100,200,300,200,100,0,-100,-200,-300,-200,-100,0,100,200,300,200,100, 0).setDuration(4000),ObjectAnimator.ofFloat(view, "alpha", 1, 1).setDuration(mDuration*3/2));}
這里的效果和上面的效果幾乎相同。僅僅只是是這里切割了整段距離。能夠把時間平分,

也就是用

playTogether這種方法也能夠實現<pre name="code" class="java">playSequentially這種方法的效果。(播放動畫隊列,非常好理解)

title = (TextView) findViewById(R.id.title);final BaseEffects animator = Effectstype.Slidetogether.getAnimator();final Handler handler = new Handler(new Handler.Callback() {@Overridepublic boolean handleMessage(Message arg0) {// TODO Auto-generated method stubanimator.start(title);return true;}});new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubwhile(true){try {Thread.sleep(8000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}handler.sendEmptyMessage(0);}}}).start();
直接對單個View播放動畫。如上圖。


筆記先作到這里,假設有錯誤的,還請各位大牛批評指正。

Write the code,Change the world!



復制去Google翻譯翻譯結果 playSequentially

轉載于:https://www.cnblogs.com/wzjhoutai/p/6707275.html

總結

以上是生活随笔為你收集整理的关于github上开源nineoldandroids兼容动画的笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。