當前位置:首頁 » 安卓系統 » android動畫切換效果

android動畫切換效果

發布時間: 2022-10-28 16:10:30

1. Android 界面切換的動畫效果

可能是裡面的處理邏輯太復雜了把

2. Android常見動畫效果合集,讓APP熠熠生輝,絢麗靈動

在App中添加一些動畫效果,會給用戶耳目一新,眼前一亮的感覺,讓APP顯的高端大氣上檔次,因此開發項目的過程中能夠實現一些常見的動畫效果還是很有必要的,Android本身提供了豐富的動畫API,方便我們實現炫酷的動畫效果。

先放上幾張實現的效果圖:

一幀一幀進行播放,它的原理與Gif類似,按序播放一組預先定義好的圖片序列,如:

直接更改View 的屬性來實現的動畫。
工作原理:在一定時間間隔內,通過不斷調用set方法對值進行改變,並不斷將該值賦給對象的屬性,從而實現該對象在該屬性上的動畫效果

Google在Android 5.0之後推出的一種動畫效果,就是以某種方式從一個場景以動畫的形式過渡到另一個場景,可以參考 Material-Animations ,常用於點擊列表頁中的圖片跳轉到大圖或由列表頁跳轉到詳情頁

Lottie 是 Airbnb推出的一套跨平台的動畫完整解決方案,它能夠幫助開發者直接載入json格式的文件在 iOS、Android 和 React Native之上,實現 100% 與設計稿相同的動畫效果,而無需關心中間的實現細節。設計師只需要使用 After Effectes 設計出動畫之後,通過使用 Lottie 提供的Bodymovin插件將設計好的動畫導出成json格式的文件交付給開發即可完成。 Lottie網站 lottie-android

跨平台的即時通信軟體Telegram推出的新的Sticker貼紙格式,這個全新的 Sticker 貼紙格式為 .tgs,其實就是基於Lottie json文件改造而來的一種格式

GIF(Graphics Interchange Format)是由CompuServe公司開發的一種圖像文件格式,可以將多幅圖像保存到一個圖像文件,展示的時候將多幅圖像數據逐幀讀出並顯示到屏幕上,從而形成動畫效果。在Android中播放GIF通常有以下幾種方式:

https://github.com/kongpf8848/Animation

animlogoview

Telegram

3. android中如何進行多個view進行動畫切換

這個首選需要你的手機是四核及以上,這是硬體要求,再者就是你每次打開視頻或者游戲界面看看是否有沒有在手機右側有個小窗口等類似字眼,點擊下,即可。

4. 如何設定Android Activity間切換時的動畫

首先定義好acitivity切換的動畫
<style name="FeelyouWindowAnimTheme" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/in_from_left</item>
<item name="android:activityOpenExitAnimation">@anim/out_from_right</item>
<item name="android:activityCloseEnterAnimation">@anim/in_from_right</item>
<item name="android:activityCloseExitAnimation">@anim/out_from_left</item>
</style>

注意需要繼承自 @android:style/Animation.Activity。
4個屬性的意思:
假設我們有 2 個 Activity,分別是 A1 和 A2:
當我們從 A1 啟動 A2 時,A1 從屏幕上消失,這個動畫叫做 android:activityOpenExitAnimation
當我們從 A1 啟動 A2 時,A2 出現在屏幕上,這個動畫叫做 android:activityOpenEnterAnimation
當我們從 A2 退出回到 A1 時,A2 從屏幕上消失,這個叫做 android:activityCloseExitAnimation
當我們從 A2 退出回到 A1 時,A1 出現在屏幕上,這個叫做 android:activityCloseEnterAnimation

定義具體的動畫文件

anim/out_from_right.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:ration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100%p"
android:toYDelta="0" >
</translate>

anim/in_from_left.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:ration="500"
android:fromXDelta="-100%p"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0" >
</translate>

anim/out_from_left.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:ration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="-100%p"
android:toYDelta="0" >
</translate>

anim/in_from_right.xm
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:ration="500"
android:fromXDelta="100%p"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0" >
</translate>

最後設定activity的主題的android:windowAnimationStyle

<style name="AnimActivityTheme">
<item name="android:windowAnimationStyle">@style/FeelyouWindowAnimTheme</item>
</style>

注意兩個activity都需要應用相同動畫主題
<activity
android:name="com.test..A1"
android:theme="@style/AnimActivityTheme" >
</activity>
<activity
android:name="com.test.A2"
android:theme="@style/AnimActivityTheme" >
</activity>

5. Android動畫之ViewPropertyAnimator(專用於view的屬性動畫)

屬性動畫對比原來的視圖動畫有很多的優點,屬性動畫可以對所有的對象做動畫操作,但Android開發中需要做動畫最多的還是View,如果只是對一個view做動畫,很少的幾個屬性還行,如果是對同一個view的十幾個屬性同時做動畫,相信屬性動畫的寫法是比較繁瑣的。ViewPropertyAnimator從名字就可以看出是專用於View的屬性動畫,在API12被提供。ViewPropertyAnimator專用於操作View動畫,語法更加簡潔,使用更加方便。
developer: https://developer.android.google.cn/reference/android/view/ViewPropertyAnimator

如何獲取ViewPropertyAnimator 對象:
ViewPropertyAnimator 沒有構造函數,通過View.animate()方法可以方便的獲取ViewPropertyAnimator 對象,此時獲取的動畫對象就專用於操作當前view。

setDuration(); //設置動畫時長
setInterpolator(); //設置插值器
setStartDelay(); //設置延遲開始時間
start(); //立刻開始動畫
cancel(); //取消動畫

明顯看到圖片先往下走了一段,然後向左的動畫才開始執行。

鏈式操作
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(2000).translationY(300).scaleX(0.5f);

以上函數的執行,會導致相同動畫的cancle,以上函數都是除了坐標相關都是以view左上角為坐標原點。

方法都比較簡單,下面距幾個列子:

首先利用translationX,translationXBy來區分By的意義:
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).translationY(300);

ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).translationYBy(300);

translationYBy 可以多次移動View,translationY多次執行沒有效果。

ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).x(100).y(100);

ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(2000).rotation(270);

據觀察withEndAction相當於動畫開始,withStartAction相當於動畫結束。

可以看到可以添加setUpdateListener監聽,但無法通過這個監聽函數監聽到當前動畫的信息,所以這個監聽函數可能用處不大。

Animation動畫概述和執行原理
Android動畫之補間動畫TweenAnimation
Android動畫之逐幀動畫FrameAnimation
Android動畫之插值器簡介和系統默認插值器
Android動畫之插值器Interpolator自定義
Android動畫之視圖動畫的缺點和屬性動畫的引入
Android動畫之ValueAnimator用法和自定義估值器
Android動畫之ObjectAnimator實現補間動畫和ObjectAnimator自定義屬性
Android動畫之ObjectAnimator中ofXX函數全解析-自定義Property,TypeConverter,TypeEvaluator
Android動畫之AnimatorSet聯合動畫用法
Android動畫之LayoutTransition布局動畫
Android動畫之共享元素動畫
Android動畫之ViewPropertyAnimator(專用於view的屬性動畫)
Android動畫之Activity切換動畫overridePendingTransition實現和Theme Xml方式實現
Android動畫之ActivityOptionsCompat概述
Android動畫之場景變換Transition動畫的使用
Android動畫之Transition和TransitionManager使用
Android動畫之圓形揭露動畫Circular Reveal
Android 動畫之 LayoutAnimation 動畫
Android動畫之視圖動畫的缺點和屬性動畫的引入

6. 如何設定Android Activity間切換時的動畫

轉載本代碼示例介紹如何設定Activity間切換時的動畫效果。本示例使用Eclipse的Android工程編譯測試。

1. 定義清單文件(AndroidManifest.xml)

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http。//schemas。android。com/apk/res/android"

package="my.android.test"

android:versionCode="1"

android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".Animation"

android:label="@string/app_name">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity android:name=".Controls1"

android:label="@string/app_name"

android:theme="@android:style/Theme.Light">

</activity>

</application>

<uses-sdk android:minSdkVersion="9" />

</manifest>

2. 定義字元串資源(res/values/strings.xml)

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World,Aniation!</string>

<string name="app_name">Animation</string>

<string name="activity_animation_msg">Press a button to launch an activity with a custom animation.</string>

<string name="activity_animation_fade">Fade in</string>

<string name="activity_animation_zoom">Zoom in</string>

<string name="controls_1_save">Save</string>

<string name="controls_1_checkbox_1">Checkbox 1</string>

<string name="controls_1_checkbox_2">Checkbox 2</string>

<string name="controls_1_radiobutton_1">RadioButton 1</string>

<string name="controls_1_radiobutton_2">RadioButton 2</string>

<string name="controls_1_star">Star</string>

<string name="textColorPrimary">textColorPrimary</string>

<string name="textColorSecondary">textColorSecondary</string>

<string name="textColorTertiary">textColorTertiary</string>

<string name="listSeparatorTextViewStyle">listSeparatorTextViewStyle</string>

</resources>

3. 定義漸入動畫資源定義(res/anim/fade.xml、res/anim/hold.xml)

res/anim/fade.xml文件

<?xml version="1.0" encoding="utf-8"?>

<!-- 聲明動畫對象的透明度,本例使用漸入的方式,顯示Activity

屬性說明參照zoom_exit.xml -->

<alpha xmlns:android="http。//schemas。android。com/apk/res/android"

android:interpolator="@android:anim/accelerate_interpolator"

android:fromAlpha="0.0" android:toAlpha="1.0"

android:ration="@android:integer/config_longAnimTime" />

res/anim/hold.xml文件

<?xml version="1.0" encoding="utf-8"?>

<!-- 聲明動畫對象的水平和垂直移動量,本例使用水平移動方式,

android:interpolator:指定在設定時間內動畫移動過程中插補器,用於改善動畫的平滑度

android:fromXDelta:指定動畫開始時,動畫對象的水平位置,可以用像素智設定,也可以用

相對父窗口寬度的百分比來設定。

android:toXDelta:指定動畫結束時,動畫對象的水平位置,可以用像素值來設定,也可以用

相對父窗口寬度的百分比來設定。

android:ration:指定動畫的播放時間

-->

<translate xmlns:android="http。//schemas。android。com/apk/res/android"

android:interpolator="@android:anim/accelerate_interpolator"

android:fromXDelta="0" android:toXDelta="0"

android:ration="@android:integer/config_longAnimTime" />

4. 定義縮放動畫資源定義(res/anim/zoom_enter.xml、res/anim/zoom_exit.xml)

res/anim/zoom_enter.xml文件

<?xml version="1.0" encoding="utf-8"?>

<!-- 聲明動畫對象進入屏幕時的動畫資源

android:interpolator:指定在設定時間內動畫移動過程中插補器,用於改善動畫的平滑度

-->

<set xmlns:android="http。//schemas。android。com/apk/res/android"

android:interpolator="@android:anim/decelerate_interpolator">

<!-- 聲明動畫對象進入屏幕時的縮放動畫,

屬性說明參照zoom_exit.xml -->

<scale android:fromXScale="2.0" android:toXScale="1.0"

android:fromYScale="2.0" android:toYScale="1.0"

android:pivotX="50%p" android:pivotY="50%p"

android:ration="@android:integer/config_mediumAnimTime" />

</set>

res/anim/zoom_exit.xml文件

<?xml version="1.0" encoding="utf-8"?>

<!-- 聲明Activity退出時使用的動畫資源

android:interpolator:指定在設定時間內動畫移動過程中插補器,用於改善動畫的平滑度

android:zAdjustment:允許再動畫播放期間,調整播放內容在Z軸方向的順序,normal(0):真正播放的

動畫內容保持當前的Z軸順序,top(1):在動畫播放期間,強制把當前播放的內容放到其他內容的上面;

bottom(-1):在動畫播放期間,強制把當前播放的內容放到其他內容之下。

-->

<set xmlns:android="http。//schemas。android。com/apk/res/android"

android:interpolator="@android:anim/decelerate_interpolator"

android:zAdjustment="top">

<!-- 指定動畫對象的縮放因子和播放時間

android:fromXScale和android:toXScale指定X軸的動畫開始和結束時的縮放因子

android:fromYScale和android:toYScale指定Y軸的動畫開始和結束時的縮放因子

android:pivoteX:在動畫對象被縮放時,X軸要保留的原始尺寸的百分比。

android:pivoteY:在動畫對象被縮放時,Y軸要保留的原始尺寸的百分比。

android:ration指定動畫的播放時間

-->

<scale android:fromXScale="1.0" android:toXScale=".5"

android:fromYScale="1.0" android:toYScale=".5"

android:pivotX="50%p" android:pivotY="50%p"

android:ration="@android:integer/config_mediumAnimTime" />

<!-- 定義動畫對象的透明度,該動畫在動畫縮放之後播放。

android:fromAlpha:指定動畫初始時的透明度

android:toAlpha:指定動畫結束時的透明度

android:ratiion:指定動畫透明處理的執行時間

-->

<alpha android:fromAlpha="1.0" android:toAlpha="0"

android:ration="@android:integer/config_mediumAnimTime"/>

</set>

7. 如何設定Android Activity間切換時的動畫

可以通過以下幾個步驟完成:
1、定義清單文件(AndroidManifest.xml)
2、定義字元串資源(res/values/strings.xml)
3、定義漸入動畫資源定義(res/anim/fade.xml、res/anim/hold.xml)
4、定義縮放動畫資源定義(res/anim/zoom_enter.xml、res/anim/zoom_exit.xml)
5、定義布局Activity布局資源(res/layout/activity_animation.xml、res/layout/controls_1.xml)
6、創建Activity窗口(Animation.java、Controls1.java)

8. android 兩個activity之間怎麼進行帶動畫的翻轉切換

//實現淡入淺出的效果
startActivity(new Intent(MainActivity.this,SecondActivity.class));
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
// 由左向右滑入的效果
startActivity(new Intent(MainActivity.this,SecondActivity.class));
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
你可以去網路下這個方法overridePendingTransition。

9. Android ViewPager多頁面滑動切換以及動畫效果

用Viewpager + Fragment + ActionBar 這是谷歌的標配
當然,你不想用ActionBar 那就用TabHost這個最簡單
或者用RadioGroup 單選按鈕來實現
我那有個例子,是直接用Viewpager+TabHost做的一個滑動切換
但是沒有Viewpager + Fragment好用
http://download.csdn.net/detail/qqmsd8/6469823

10. android 怎麼在輪播時實現多種動畫效果,如第一張到第二張漸變,第二張到第三張旋轉

Android系統自帶的一個多頁面管理控制項,它可以實現子界面的自動切換:

首先 需要為ViewFlipper加入View

(1) 靜態導入:在layout布局文件中直接導入

(2) 動態導入:addView()方法

ViewPlipper常用方法:

setInAnimation:設置View進入屏幕時候使用的動畫

setOutAnimation:設置View退出屏幕時候使用的動畫

showNext:調用該函數來顯示ViewFlipper裡面的下一個View

showPrevious:調用該函數來顯示ViewFlipper裡面的上一個View

setFlipInterval:設置View之間切換的時間間隔

startFlipping使用上面設置的時間間隔來開始切換所有的View,切換會循環進行

stopFlipping:停止View切換

講了這么多,那麼我們今天要實現的是什麼呢?

(1) 利用ViewFlipper實現圖片的輪播

(2) 支持手勢滑動的ViewFlipper

我們需要先准備幾張圖片:把圖片放進drawable中

創建兩個動畫:在res下面新建一個folder裡面新建兩個xml:

熱點內容
logn演算法 發布:2024-04-27 21:58:36 瀏覽:595
11選五的簡單演算法 發布:2024-04-27 21:46:14 瀏覽:70
ebay圖片上傳 發布:2024-04-27 21:31:50 瀏覽:586
微信電腦登錄顯示伺服器錯誤 發布:2024-04-27 20:58:08 瀏覽:134
壓縮彈簧安裝 發布:2024-04-27 20:35:43 瀏覽:371
淘寶視頻無法上傳視頻 發布:2024-04-27 20:31:27 瀏覽:643
安卓軟體怎麼分享 發布:2024-04-27 20:28:26 瀏覽:669
寬頻測速上傳 發布:2024-04-27 20:23:22 瀏覽:174
mysql存儲過程ifand 發布:2024-04-27 20:17:12 瀏覽:252
4位數密碼鎖怎麼開 發布:2024-04-27 20:10:31 瀏覽:853