android動畫實現
1. 如何通過android實現alpha漸變動畫效果
Android動畫分為四種:alpha(漸變透明度),scale(漸變尺寸伸縮),translate(畫面轉換位置移動),rotate(畫面轉移旋轉);今天先寫第一個動畫alpha。
動畫效果有兩種實現:
一、在xml中定義:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 透明度控制動畫效果 alpha
浮點型值:
fromAlpha 屬性為動畫起始時透明度
toAlpha 屬性為動畫結束時透明度
說明:
0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之間的float數據類型的數字
長整型值:
ration 屬性為動畫持續時間
說明:
時間以毫秒為單位
-->
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:ration="5000"
/>
</set>
二、在頁面Activity中聲明:
Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000);
完成動畫漸變透明度的參數設定後,我們就要開始在應用中使用它:
public class SplashActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
View view = View.inflate(SplashActivity.this, R.layout.welcome, null);
setContentView(view);
//動畫效果參數直接定義
Animation animation = new AlphaAnimation(0.1f, 1.0f);
animation.setDuration(5000);
//動畫效果從XMl文件中定義
// Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
view.setAnimation(animation);
}
}
這樣我們就完成了預定的動畫效果,但是我們的最終目的是動畫效果完畢以後跳轉到相應的頁面,所以我們對動畫添加了監聽:
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
Intent intent = new Intent(SplashActivity.this,MainActivity.class);
startActivity(intent);
}
});
這樣的話,我們在動畫的持續時間中預載入我們的資源,當動畫結束以後跳轉到我們的主頁面;
詳細步驟和完整源碼可以參考:http://www.cnblogs.com/sishuiliuyun/p/3167581.html
2. android 的動畫效果怎麼做
1. Tween Animation:通過對場景里的對象不斷做圖像變換(平移、縮放、旋轉)產生動畫效果,即是一種漸變動畫;
2. Frame Animation:順序播放事先做好的圖像,是一種畫面轉換動畫。
動畫類型
下面先來看看Android提供的動畫類型。Android的animation由四種類型組成
在XML文件中:
alpha 漸變透明度動畫效果
scale 漸變尺寸伸縮動畫效果
translate 畫面轉換位置移動動畫效果
rotate 畫面轉移旋轉動畫效果
在Java 源碼中定義了相應的類,可以使用這些類的方法來獲取和操作相應的屬性:
AlphaAnimation漸變透明度動畫效果
ScaleAnimation漸變尺寸伸縮動畫效果
TranslateAnimation畫面轉換位置移動動畫效果
RotateAnimation畫面轉移旋轉動畫效果
3. Android中的幾種動畫
幀動畫:指通過指定每一幀的圖片和播放時間,有序的進行播放而形成動畫效果,比如想聽的律動條。
補間動畫:指通過指定View的初始狀態、變化時間、方式,通過一系列的演算法去進行圖形變換,從而形成動畫效果,主要有Alpha、Scale、Translate、Rotate四種效果。注意:只是在視圖層實現了動畫效果,並沒有真正改變View的屬性,比如滑動列表,改變標題欄的透明度。
屬性動畫:在Android3.0的時候才支持,通過不斷的改變View的屬性,不斷的重繪而形成動畫效果。相比於視圖動畫,View的屬性是真正改變了。比如view的旋轉,放大,縮小。
4. android 為什麼要用代碼實現動畫
Android的動畫歸納起來有幀動畫,和屬性動畫。一般情況下,幀動畫實現起來會相對簡單很多,只要美工提供一幀一幀的圖片就可以很容易的實現,代碼不用很復雜。但是相對而言,弊端有很多,比如內存佔用大,動畫不流暢,所以很多時候,我們還是屬性動畫。
在Android4.0之前我們可以使用Animation實現簡單的動畫,但是一些復雜的動畫,我們想要組合起來就會復雜很多,代碼量也會大很多。所以Android4.0以後推出了ObjectAnim相關的API,會讓動畫更加簡單。另外有些特別復雜的動畫,我們可以自定義View在onDraw中實現相關的繪圖,讓畫面重復繪制,產生動畫效果,但這其實也應該屬於屬性動畫的范疇,但確實Android中高級動畫的實現方式。
5. 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:
6. android應用的動畫ui怎麼實現的
Android的動畫歸納起來有幀動畫,和屬性動畫。一般情況下,幀動畫實現起來會相對簡單很多,只要美工提供一幀一幀的圖片就可以很容易的實現,代碼不用很復雜。但是相對而言,弊端有很多,比如內存佔用大,動畫不流暢,所以很多時候,我們還是推薦屬性動畫。
在Android4.0之前我們可以使用Animation實現簡單的動畫,但是一些復雜的動畫,我們想要組合起來就會復雜很多,代碼量也會大很多。所以Android4.0以後推出了ObjectAnim相關的API,會讓動畫更加簡單。另外有些特別復雜的動畫,我們可以自定義View在onDraw中實現相關的繪圖,讓畫面重復繪制,產生動畫效果,但這其實也應該屬於屬性動畫的范疇,但確實Android中高級動畫的實現方式。
7. Android怎樣增加關機動畫/增加關機動畫實現方法
前提:手機要ROOT提權,用R.E.管理器粘貼復制 開機畫面,一般是分為2屏,當然也有3屏的說法,不管怎樣,我這里說得就是最後的一屏,按照bootanimation的字面意思翻譯,大概也就是開機動畫的意思,那這就不說第幾屏了,直接用「開機動畫」這詞。 首先,開機動畫的地址:system\media\bootanimation.zip。。。要修改開機動畫就是修改bootanimation這個文件。如果說你的手機里沒有這個文件,那就是說明你用的是官方原始版本的rom開機動畫沒有被修改過,但這不礙事,沒有就放一個進去,到時候想換回最原始的開機畫面,也可以把bootanimation這個文件刪了。官方最原始的開機動畫在system\ framework\framework-res.apk\assets\images裡面,裡面主要是2張圖片,高手可以去研究一下,說不定通過這個文件可以用代碼實現動畫的過程。 接下來,說說bootanimation.zip這個文件的結構。bootanimation裡面主要包含一個desc.txt以及N個文件夾。而文件夾裡面放著的就是你要的開機動畫的圖片。decs.txt的作用就是指導系統如何去執行你的開機畫面。 下面繼續說說desc.txt這個文檔要怎麼寫。 先看例子,如果我的開機動畫要用到2個文件夾,分別是part1和part2,。。。。我希望開機的時候,先把part1裡面的圖片都播放一遍,然後再循環播放part2裡面的文件,直到進入系統。那麼decs.txt文檔的內容應該如下: 320 480 5 p 1 0 part1 p 0 0 part2 就這么多,現在解釋一下這些命令吧。 第一行,320 480是代表你屏幕的解析度,因為我們的胖6是320*480的,這就不多說了。後面的5是說:5幀每秒,不懂的可以這么理解,5是代表一秒鍾播放5張圖片。就這么簡單。 第二行,p 1 0 part1。p應該是play吧,也就是播放的意思。1是播放一次。0是空指令,就是什麼都不做。part1就是說,這條指令是針對part1這個文件夾的。整條指令的意思就是,播放part1裡面的圖片1次,然後什麼都不做,馬上進入下一條指令。 第三行,p 0 0 part2。p依然是播放。第一個0這里是代表循環播放,第二個0和上面第二條指令一樣,代表什麼也不做。part2也就不多說了。 至於為什麼第一個0為什麼是代表循環,只能這么說,這事國際慣例,就像用迅雷的時候,0代表不限制速度一樣,系統規定的,你知道就好,別糾結。 總結公式如下 第一條指令:屏幕的解析度(空格)播放頻率 第二條指令:p(空格)播放次數(空格)後續操作(空格)作用文件夾 第三條指令:同上 第N條指令:同上 屏幕解析度的格式是:寬(空格)高,320 480。。。播放頻率,上面已經說清楚了,至於到底要用多大的數字,視你開機動畫的張數而定,比如說,一共有100張圖片,開機時間是20秒,那麼100/20就是5。 播放次數,1是代表一次,0代表循環播放。如果要播放2次的話,就是就是打個2上去,應該是這樣吧,反正我是沒試過,只試過0和1.後續操作,0代表什麼都不做,直接進入下一條指令。10是代表稍作停頓。 至於文件夾裡面的圖片,比較簡單,首先,糾正一個說法,之前說必須要是png格式,經過我試驗證明,jpg格式的也可以,其他的有待試驗,不過只支持靜態圖片這點應該是真的,動態圖片同樣有待試驗。其次,關於圖片的尺寸,是不做要求的,只要在txt文檔里寫好手機的解析度即可,開機的時候系統會自動適配。其其次要按播放循序命名,建議用5位數字,比如說,第一張圖片是00010,第二張就是00020.。。。。為什麼要從00010開始,而不是00001?因為這事預防以後要在第一張和第二張中間再插一張圖片進去的話,就可以把插進去的圖片命名為00011,在00010之後,00020之前。就這么簡單。 至於圖片那裡來嘛,當然是自己網上找啦,也可以下載別人的bootanimation,然後修改一下。最後就是壓縮包了,把需要用到的part文件夾跟decs.txt打包成zip格式,必須是zip,不能是rar,而且打包的時候壓縮方式要選擇「存儲」模式。然後改名成為bootanimation.zip,復制到SD卡里,再通過RE文件管理器復制到system\media\下面,重啟。 要注意一下,bootanimation不能太大,大了會卡,一般不要超過3M。
8. android 怎麼實現曲線動畫
樂成手機開發者聯盟里有類似的文章