當前位置:首頁 » 安卓系統 » android菜單動畫

android菜單動畫

發布時間: 2023-09-30 09:01:19

『壹』 Android動畫一:Activity過渡動畫詳細實現原理

雖然 Android 5.0 之後推出了新的過渡動畫方式,但通常只是用於特定的場合使用, activity.overridePendingTransition() 通用方式的過渡動畫還是很常用。

overridePendingTransition有兩個參數,第一個參數(enterAnim)是作用於SecondActivity 的 進入屏幕可見區域 效果,第二個參數(exitAnim)是作用於當前 Activity 離開屏幕可見區域 效果。

iOS 默認的效果,新的Activity從右邊(R)數蘆進入顯示區域,當前Activity從左邊離開顯示區域到(L)。

enterAnim(activity_right_to_left_enter.xml):X軸從 100% 到 0

exitAnim(activity_right_to_left_exit.xml):X軸從 0 到 -100%

使用

一般從底部彈出新Activity,就是從B區域到屏幕可薯悔帶見區域,當前的Activity是保持不變的。
enterAnim(activity_bottom_to_top_enter.xml):Y軸從 100% 到 0

exitAnim(no_anim.xml):Y軸保持不變

使用

前面講了startActivity的轉場動畫,下面講finish()的轉場動畫。overridePendingTransition有兩個參數,第一個參數(enterAnim)是作用於上一個Activity的進入屏幕可見區域效果,第二個參數(exitAnim)是作用於當前嘩前 Activity 離開屏幕可見區域效果。

iOS默認的finish動畫,是當前的Activity從屏幕可見區域到R區域,上一個Activity從L區域到屏幕可見區域。

enterAnim(activity_left_to_right_enter.xml):X軸從 -100% 到 0

exitAnim(activity_left_to_right_exit.xml):X軸從 0 到 100%

使用

從屏幕底部滑出效果是,當前Activity從底部滑出屏幕可見區域,上一個Activity保持不變,和BottomIn不同的是,enterAnim是不需要使用動畫,因為上一個Activity已經在屏幕的後面了,只需要改變當前Activity消失的效果。
exitAnim(activity_top_to_bottom_exit.xml):Y軸從 0 到 100%

使用

https://github.com/taoweiji/ActivityAnimationExample

『貳』 如何在Android中自定義動畫

在Android中自定義動畫按照下面的步驟。

1、首先定義一個動畫,如下圖:

『叄』 怎樣讓 Android 系統的過渡動畫達到 iOS 那樣流暢自然的效果

1、首先在此隱手機桌面打開設置。

『肆』 Android怎樣為ToolBar上的Item添加動畫效果

效果一:使Toolbar隨著內容區域的滾動而隱藏和顯示

我們知道手機屏幕的大小時候限的,有時候我們為了顯示更多的內容需要隱藏掉一些不相關的內容,比如Toolbar。以前我們可能會使用屬性動畫或者通過view.animate().translationXX()這個便捷的方法來實現這些效果。現在就不用這么麻煩了,只需要在xml中添加兩行代碼就可以了。

為了實現上述的效果,這里需要引入兩個新的控制項:CoordinatorLayout和AppBarLayout,這兩個控制項均位於design兼容包中。所以你需要在mole的build.gradle依賴中加入下面一行代碼。
compile 'com.android.support:design:23.1.0'

AppBarLayout:本質上是一個垂直的線性布局。但是他實現了材料設計中app bar的滾動手勢的特性。而為了讓這些特性發揮效果,你必須把AppBarLayout作為CoordinatorLayout的一個直接子控制項來使用。並且,你還需要為AppBarLayout設置一個支持NestedScroll的兄弟控制項。這樣父控制項CoordinateLayout就知道什麼時候來響應滾動事件了 它的子控制項可以通過setScrollFlags(int)或者app:layout_scrollFlags的方式來為自己指定滾動行為。可選的行為有:SCROLL_FLAG_ENTER_ALWAYS、SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED、SCROLL_FLAG_EXIT_UNTIL_COLLAPSED、SCROLL_FLAG_SCROLL、SCROLL_FLAG_SNAP。
CoordinateLayout:本質上是一個增強版的FrameLayout。一般作為一個容器來使用,這樣可以讓它的子控制項實現一些交互效果。可以通過給子控制項指定不同的Behaviors來實現不同的交互效果。

扯了這么多好像也沒啥感覺,感覺還真是「Talk is cheap. Show me the code.」呢。那下來就擼代碼,看效果吧。
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.demo.activity.MainActivity">

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay"/>

</android.support.design.widget.AppBarLayout>

<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />

</android.support.design.widget.CoordinatorLayout>

上面的布局中有兩個地方需要注意:1.Toolbar的app:layout_scrollFlags="scroll|enterAlways"屬性 2.RecyclerView的app:layout_behavior="@string/appbar_scrolling_view_behavior"屬性。這兩個地方就是上文中加粗部分的提到的注意點。同時,注意下整個布局的結構:CoordinateLayout作為跟布局,內部分別放置了一個AppBarLayout和RecyclerView。Toolbar作為AppBarLayout的子控制項而存在。
其實,就改這么點地方就可以了。想要的效果已經有了。

『伍』 Android 動畫詳解

  android中酷炫的效果,都離不開動畫的支持。這里我們詳細介紹一下android中動畫的分類。android的中動畫分為幀動畫、補間動畫、屬性動畫。原理各不相同,實現的效果也大不相同。下面一一講解三種動畫。

  幀動畫顧名思義就是通過順序一幀一幀播放圖片從而產生動畫效果,效果類似放電影。該動畫缺點比較明顯,就是如果圖片過大過多會導致OOM。幀動畫xml文件放置在drawable目錄下而非anim文件夾下。

  補間動畫是通過對view進行旋轉、縮放、漸變、透明度變化,而達到的一種動畫效果。是一種漸進式動畫。並且可以通過組合以上四種操作,完成復雜的自定義動畫效果。缺點就是只是改變的view的展示狀態,但是不會改變view的位置。例如我們將一個button通過位移想左移動100dp,然後停留在終點。但是我們可以發現展示的位置button點擊無效果,不可以交互。而在button原始位置空白的地方點擊會觸發button的點擊效果。也就是button本質還是在原來位置,只是展示左移了100dp。

透明度動畫,通過改變view的透明度展示動畫。對應AlphaAnimation和<alpha>xml標簽

縮放動畫,通過修改view的大小展示動畫。對應ScaleAnimation類和<scale>xml表情

通過旋轉view展示動畫。對應RotateAnimation類和<rotate>xml標簽

平移動畫,更改view的展示位置展示動畫。對應TranslateAnimation類和<translate>xml表情

應用動畫xml配置

使用java類配置動畫,具體參數類同xml參數,建議使用xml配置動畫

  屬性動畫本質是通過改變對象的屬性(例如:x,y等屬性),來實現動畫的,所以基本上是無所不能的,只要對象有這個屬性,就能實現動畫效果。屬性動畫是在api11的新特性,通過動態的改變view的屬性從而達到動畫效果。雖然可以使用nineoldandroid庫向下兼容,但是兼容本質是使用補間動畫完成,也就是說不會更改view的屬性,也不會更改view的位置。屬性動畫比較常用的類: ValueAnimator、ObjectAnimator、AnimationSet,其中ObjectAnimator是ValueAnimator的子類,而AnminationSet是動畫集合

動畫配置同樣可以使用xml配置,參數類似,這里不做詳細說明。

根據時間流逝百分比計算當前屬性改變百分比。同xml配置動畫中的 android:interpolator 屬性配置,常見有LinearInterpolator(線性差值器)、(加速減速差值器)
等。自定義需要實現 Interpolator 或者 TimeInterpolator 。Interpolator介面繼承TimeInterpolator。

根據當前屬性改變百分比計算改變後的屬性值。屬性動畫特有的屬性。自定義估值器需要實現 TypeEvaluator 介面。

可以對任意屬性做屬性動畫,屬性動畫要求動畫作用的對象提供該屬性的get()和set()方法。因為屬性動畫本質就是根據外界傳遞的對象屬性的初始值和終點值,然後根據估值器和差值器計算屬性值,不斷調用屬性的set方法,通過時間的推移所傳遞的值,越來越近終點值。
注意:

使用ValueAnimator通過監聽動畫過程,自己改變對象屬性完成動畫

『陸』 Android 中的動畫有哪幾類,它們的特點和區別是什麼

1.View Animation(Tween Animation):補間動畫,給出兩個關鍵幀,通過一些演算法將給定屬性值在給定的時間內在兩個關鍵幀間漸變。
View animation只能應用於View對象,而且只支持一部分屬性,這種實現方式可以使視圖組件移動、放大、縮小以及產生透明度的變化.

2.Frame動畫,傳統的動畫方法,通過順序的播放排列好的圖片來實現,類似電影補間動畫和幀動畫。
補間動畫和Frame動畫的定義:
所謂補間動畫,是指通過指定View的初末狀態和變化時間、方式,對View的內容完成一系列的圖形變換來實現動畫效果。主要包括四種效果:Alpha、Scale、Translate和Rotate。
幀動畫就是Frame動畫,即指定每一幀的內容和停留時間,然後播放動畫。。

3.屬性動畫
只是一個動畫效果,組件其實還在原來的位置上,xy沒有改變
###位移:
第一個參數target指定要顯示動畫的組件
第二個參數propertyName指定要改變組件的哪個屬性
第三個參數values是可變參數,就是賦予屬性的新的值
傳入0,代表x起始坐標:當前x + 0
傳入100,代表x終點坐標:當前x + 100
//具有get、set方法的成員變數就稱為屬性
ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "translationX", 0, 100) ;

4.四種基本的動畫 ,透明/伸縮/移動/旋轉。

(1)XML中

alpha 漸變透明度動畫效果

scale 漸變尺寸伸縮動畫效果
translate畫面轉換位置移動動畫效果
rotate畫面轉移旋轉動畫效果
(2) JavaCode中

AlphaAnimation漸變透明度動畫效果
ScaleAnimation漸變尺寸伸縮動畫效果
TranslateAnimation畫面轉換位置移動動畫效果
RotateAnimation畫面轉移旋轉動畫效果
(3)Android動畫模式
Animation主要有兩種動畫模式:
一種是tweened animation(漸變動畫)

一種是frame by frame(畫面轉換動畫)

Tween動畫,這種實現方式可以使視圖組件移動、放大、縮小以及產生透明度的變化;
Frame動畫,傳統的動畫方法,通過順序的播放排列好的圖片來實現,類似電影。

『柒』 Carson帶你學Android:常見的三種動畫類型

Android 動畫主要分為分為兩大類(三種):

下面。我將簡單介紹這兩大類、三種 Android 常用動畫

根據不同的動畫效果,補間動畫分為4種動畫:

具體效果分別如下:

較為復雜的個性化動畫效果。

將動畫拆分後的圖片幀

在 Android 3.0 ( API 11 )後才提供的一種全新動畫模式

與屬性相關、更加復雜的動畫效果。

不定期分享關於 安卓開發 的干貨,追求 短、平、快 ,但 卻不缺深度

『捌』 android 的動畫效果怎麼做

1. Tween Animation:通過對場景里的對象不斷做圖像變換(平移、縮放、旋轉)產生動畫效果,即是一種漸變動畫;
2. Frame Animation:順序播放事先做好的圖像,是一種畫面轉換動畫。
動畫類型
下面先來看看Android提供的動畫類型。Android的animation由四種類型組成
在XML文件中:
alpha 漸變透明度動畫效果
scale 漸變尺寸伸縮動畫效果
translate 畫面轉換位置移動動畫效果
rotate 畫面轉移旋轉動畫效果
在Java 源碼中定義了相應的類,可以使用這些類的方法來獲取和操作相應的屬性:
AlphaAnimation漸變透明度動畫效果
ScaleAnimation漸變尺寸伸縮動畫效果
TranslateAnimation畫面轉換位置移動動畫效果
RotateAnimation畫面轉移旋轉動畫效果

熱點內容
密碼鎖如何密碼解鎖 發布:2025-01-25 04:25:16 瀏覽:385
ebay如何上傳產品 發布:2025-01-25 04:04:37 瀏覽:823
java判斷是否手機訪問許可權 發布:2025-01-25 04:02:28 瀏覽:807
天龍八部3困難福地需要什麼配置 發布:2025-01-25 04:01:49 瀏覽:409
phpmysql網站源碼 發布:2025-01-25 03:56:49 瀏覽:755
安卓手機華為手機哪個牌子好 發布:2025-01-25 03:55:55 瀏覽:25
比亞迪發動機壓縮比 發布:2025-01-25 03:55:16 瀏覽:329
全民小視頻腳本 發布:2025-01-25 03:54:28 瀏覽:926
鸚鵡linux 發布:2025-01-25 03:44:02 瀏覽:197
python如何拋出異常 發布:2025-01-25 03:40:27 瀏覽:985