布局
創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元大渡口做網(wǎng)站,已為上家服務(wù),為大渡口各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
動(dòng)畫
message_in_anim
message_out_anim
點(diǎn)擊事件
如果是應(yīng)用全局的動(dòng)畫,則在style文件里面定義
style name="Animation_Activity" parent="@android:style/Animation.Activity"
item name="android:activityOpenEnterAnimation"@anim/right_in/item
item name="android:activityOpenExitAnimation"@anim/left_out/item
item name="android:activityCloseEnterAnimation"@anim/left_in/item
item name="android:activityCloseExitAnimation"@anim/right_out/item
/style
right_in這些為動(dòng)畫文件
然后在你程序的theme里面定義如下
style name="AppTheme" parent="AppBaseTheme"
item name="android:windowNoTitle"true/item
item name="android:windowAnimationStyle"@style/Animation_Activity/item
/style
如果只是想用一次,則是在activity跳轉(zhuǎn)時(shí)添加如下代碼
overridePendingTransition(R.anim.zoom_in, R.anim.zoom);
//R.anim.zoom_in, R.anim.zoom為動(dòng)畫文件
屬性動(dòng)畫對(duì)比原來(lái)的視圖動(dòng)畫有很多的優(yōu)點(diǎn),屬性動(dòng)畫可以對(duì)所有的對(duì)象做動(dòng)畫操作,但Android開發(fā)中需要做動(dòng)畫最多的還是View,如果只是對(duì)一個(gè)view做動(dòng)畫,很少的幾個(gè)屬性還行,如果是對(duì)同一個(gè)view的十幾個(gè)屬性同時(shí)做動(dòng)畫,相信屬性動(dòng)畫的寫法是比較繁瑣的。ViewPropertyAnimator從名字就可以看出是專用于View的屬性動(dòng)畫,在API12被提供。ViewPropertyAnimator專用于操作View動(dòng)畫,語(yǔ)法更加簡(jiǎn)潔,使用更加方便。
developer:
如何獲取ViewPropertyAnimator 對(duì)象:
ViewPropertyAnimator 沒(méi)有構(gòu)造函數(shù),通過(guò)View.animate()方法可以方便的獲取ViewPropertyAnimator 對(duì)象,此時(shí)獲取的動(dòng)畫對(duì)象就專用于操作當(dāng)前view。
setDuration(); //設(shè)置動(dòng)畫時(shí)長(zhǎng)
setInterpolator(); //設(shè)置插值器
setStartDelay(); //設(shè)置延遲開始時(shí)間
start(); //立刻開始動(dòng)畫
cancel(); //取消動(dòng)畫
明顯看到圖片先往下走了一段,然后向左的動(dòng)畫才開始執(zhí)行。
鏈?zhǔn)讲僮?/p>
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(2000).translationY(300).scaleX(0.5f);
以上函數(shù)的執(zhí)行,會(huì)導(dǎo)致相同動(dòng)畫的cancle,以上函數(shù)都是除了坐標(biāo)相關(guān)都是以view左上角為坐標(biāo)原點(diǎn)。
方法都比較簡(jiǎn)單,下面距幾個(gè)列子:
首先利用translationX,translationXBy來(lái)區(qū)分By的意義:
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).translationY(300);
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).translationYBy(300);
translationYBy 可以多次移動(dòng)View,translationY多次執(zhí)行沒(méi)有效果。
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).x(100).y(100);
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(2000).rotation(270);
據(jù)觀察withEndAction相當(dāng)于動(dòng)畫開始,withStartAction相當(dāng)于動(dòng)畫結(jié)束。
可以看到可以添加setUpdateListener監(jiān)聽,但無(wú)法通過(guò)這個(gè)監(jiān)聽函數(shù)監(jiān)聽到當(dāng)前動(dòng)畫的信息,所以這個(gè)監(jiān)聽函數(shù)可能用處不大。
Animation動(dòng)畫概述和執(zhí)行原理
Android動(dòng)畫之補(bǔ)間動(dòng)畫TweenAnimation
Android動(dòng)畫之逐幀動(dòng)畫FrameAnimation
Android動(dòng)畫之插值器簡(jiǎn)介和系統(tǒng)默認(rèn)插值器
Android動(dòng)畫之插值器Interpolator自定義
Android動(dòng)畫之視圖動(dòng)畫的缺點(diǎn)和屬性動(dòng)畫的引入
Android動(dòng)畫之ValueAnimator用法和自定義估值器
Android動(dòng)畫之ObjectAnimator實(shí)現(xiàn)補(bǔ)間動(dòng)畫和ObjectAnimator自定義屬性
Android動(dòng)畫之ObjectAnimator中ofXX函數(shù)全解析-自定義Property,TypeConverter,TypeEvaluator
Android動(dòng)畫之AnimatorSet聯(lián)合動(dòng)畫用法
Android動(dòng)畫之LayoutTransition布局動(dòng)畫
Android動(dòng)畫之共享元素動(dòng)畫
Android動(dòng)畫之ViewPropertyAnimator(專用于view的屬性動(dòng)畫)
Android動(dòng)畫之Activity切換動(dòng)畫overridePendingTransition實(shí)現(xiàn)和Theme Xml方式實(shí)現(xiàn)
Android動(dòng)畫之ActivityOptionsCompat概述
Android動(dòng)畫之場(chǎng)景變換Transition動(dòng)畫的使用
Android動(dòng)畫之Transition和TransitionManager使用
Android動(dòng)畫之圓形揭露動(dòng)畫Circular Reveal
Android 動(dòng)畫之 LayoutAnimation 動(dòng)畫
Android動(dòng)畫之視圖動(dòng)畫的缺點(diǎn)和屬性動(dòng)畫的引入