亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android 中怎么實現補間動畫

發布時間:2021-08-05 16:59:42 來源:億速云 閱讀:243 作者:Leah 欄目:移動開發

今天就跟大家聊聊有關Android 中怎么實現補間動畫,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

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

  • AlphaAnimation:透明度(alpha)漸變效果,對應<alpha/>標簽。

  • TranslateAnimation:位移漸變,需要指定移動點的開始和結束坐標,對應<translate/>標簽。

  • ScaleAnimation:縮放漸變,可以指定縮放的參考點,對應<scale/>標簽。

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

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

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

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);
    }

}

Android 中怎么實現補間動畫

Animation的xml                                                                      

Android 中怎么實現補間動畫

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="1.0"
    android:toAlpha="0.5"
    android:fillAfter="true"
    android:duration="2000" >
</alpha>

Android 中怎么實現補間動畫

Android 中怎么實現補間動畫

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="2000" >

</rotate>

Android 中怎么實現補間動畫

Android 中怎么實現補間動畫

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0.2"
    android:toXScale="2.0"
    android:fromYScale="0.2"
    android:toYScale="2.0"
    android:fillAfter="true"
    android:duration="2000" >

</scale>

Android 中怎么實現補間動畫

Android 中怎么實現補間動畫

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="20%p"
    android:toXDelta="50%p"
    android:fromYDelta="0"
    android:toYDelta="50%p"
    android:duration="2000"
    android:repeatCount="2"
    android:repeatMode="reverse" >

</translate>

Android 中怎么實現補間動畫

代碼解析                                                                                   

  • alpha

fromAlpha :起始透明度

toAlpha:結束透明度

1.0表示完全不透明

0.0表示完全透明

  • rotate

fromDegrees:表示旋轉的起始角度

toDegrees:表示旋轉的結束角度

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

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

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

  • 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 動畫的持續時間

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

看完上述內容,你們對Android 中怎么實現補間動畫有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌乐县| 安多县| 兰州市| 隆昌县| 青神县| 儋州市| 嵊州市| 满洲里市| 台中市| 三亚市| 临沂市| 长治市| 舒城县| 普安县| 土默特左旗| 合川市| 彩票| 通山县| 江达县| 彰武县| 韶山市| 尉犁县| 柏乡县| 江陵县| 叙永县| 始兴县| 晋宁县| 盐源县| 临沧市| 秀山| 宜宾市| 昌邑市| 余干县| 大安市| 黄山市| 凌源市| 墨江| 佛山市| 调兵山市| 桓仁| 上虞市|