日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
Android--補間動畫

補間動畫的優(yōu)點是可以節(jié)省空間。補間動畫與逐幀動畫在本質上是不同的,逐幀動畫通過連續(xù)播放圖片來模擬動畫的效果,而補間動畫則是通過在兩個關鍵幀 之間補充漸變的動畫效果來實現(xiàn)的。目前Android應用框架支持的補間動畫效果有以下5種。具體實現(xiàn)在android.view.animation類 庫中。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:做網站、成都網站設計、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的施秉網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

  • AlphaAnimation:透明度(alpha)漸變效果,對應標簽。
  • TranslateAnimation:位移漸變,需要指定移動點的開始和結束坐標,對應標簽。
  • ScaleAnimation:縮放漸變,可以指定縮放的參考點,對應標簽。

 

RotateAnimation:旋轉漸變,可以指定旋轉的參考點,對應標簽。

  • AnimationSet:組合漸變,支持組合多種漸變效果,對應標簽。

 

補間動畫的效果同樣可以使用XML語言來定義,這些動畫模板文件通常會被放在Android項目的res/anim/目錄下。

主代碼                                                                                        

[[116244]]

public class MainActivity extends Activity {

    private ImageView iv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = (ImageView) findViewById(R.id.iv);
    }

    public void click1(View v) {
        AlphaAnimation ani = new AlphaAnimation(0.0f, 1.0f);
        ani.setDuration(2000);
        ani.setRepeatCount(2);
        ani.setRepeatMode(Animation.REVERSE);
        iv.startAnimation(ani);
    }

    public void click11(View v) {
        Animation ani = AnimationUtils.loadAnimation(this, R.anim.alpha_anim);
        iv.startAnimation(ani);
    }

    public void click2(View v) {
        ScaleAnimation ani = new ScaleAnimation(0.0f, 2.0f, 0.0f, 2.0f,
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
                0.5f);
        ani.setDuration(2000);
        ani.setRepeatCount(2);
        ani.setRepeatMode(Animation.REVERSE);
        iv.startAnimation(ani);
    }

    public void click22(View v) {
        Animation ani = AnimationUtils.loadAnimation(this, R.anim.rotate_ani);
        iv.startAnimation(ani);
    }

    public void click3(View v) {
        RotateAnimation ani = new RotateAnimation(0, 360,
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
                0.5f);
        ani.setDuration(2000);
        ani.setRepeatCount(2);
        ani.setRepeatMode(Animation.REVERSE);
        iv.startAnimation(ani);
    }

    public void click33(View v) {
        Animation ani = AnimationUtils.loadAnimation(this, R.anim.scale_ani);
        iv.startAnimation(ani);
    }

    public void click4(View v) {
        TranslateAnimation ani = new TranslateAnimation(
                Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 1.0f,
                Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 1.0f);
        ani.setDuration(2000);
        ani.setRepeatCount(2);
        ani.setRepeatMode(Animation.REVERSE);
        iv.startAnimation(ani);
    }

    public void click44(View v) {
        Animation ani = AnimationUtils.loadAnimation(this, R.anim.translate);
        iv.startAnimation(ani);
    }

}

[[116244]]

Animation的xml                                                                       

[[116244]]



[[116244]]
[[116244]]




[[116244]]
[[116244]]




[[116244]]
[[116244]]




[[116244]]

代碼解析                                                                                    

  • alpha

 

fromAlpha :起始透明度 

toAlpha:結束透明度 

1.0表示完全不透明

0.0表示完全透明

  • rotate

 

fromDegrees:表示旋轉的起始角度 

toDegrees:表示旋轉的結束角度 

repeatCount:旋轉的次數(shù)  默認值是0 代表旋轉1次  如果值是repeatCount=4 旋轉5次,值為-1或者infinite時,表示補間動畫永不停止 

repeatMode 設置重復的模式。默認是restart。當repeatCount的值大于0或者為infinite時才有效。

 repeatCount=-1 或者infinite循環(huán)了  還可以設成reverse,表示偶數(shù)次顯示動畫時會做與動畫文件定義的方向相反的方向動行。

  • scale

 

fromXScale:表示沿著x軸縮放的起始比例 

toXScale:表示沿著x軸縮放的結束比例 

fromYScale:表示沿著y軸縮放的起始比例 

toYScale:表示沿著y軸縮放的結束比例 

圖片中心點: 

android:pivotX="50%"
android:pivotY="50%"
  • translate

android:interpolator 動畫的渲染器 

accelerate_interpolator(動畫加速器) 使動畫在開始的時候 最慢,然后逐漸加速 

decelerate_interpolator(動畫減速器)使動畫在開始的時候 最快,然后逐漸減速 

accelerate_decelerate_interpolator(動畫加速減速器) 

中間位置分層:  使動畫在開始的時候 最慢,然后逐漸加速          

使動畫在開始的時候 最快,然后逐漸減速  結束的位置最慢 

fromXDelta  動畫起始位置的橫坐標 

toXDelta    動畫起結束位置的橫坐標 

fromYDelta  動畫起始位置的縱坐標 

toYDelta   動畫結束位置的縱坐標 

duration 動畫的持續(xù)時間 

在實際項目中,我們經常使用補間動畫,原因是補間動畫使用起來比較方便,功能也比逐幀動畫強大不少,而且還可以很方便地進行動畫疊加,實現(xiàn)更加復雜的效果。

源代碼:http://pan.baidu.com/s/1dD1Qx01

本文鏈接:http://www.cnblogs.com/yydcdut


網頁標題:Android--補間動畫
網站地址:http://www.dlmjj.cn/article/cdgdhjs.html