溫馨提示×

溫馨提示×

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

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

Android如何實現(xiàn)旋轉(zhuǎn)、平移、縮放和透明度漸變的補間動畫

發(fā)布時間:2021-08-25 14:49:04 來源:億速云 閱讀:174 作者:小新 欄目:移動開發(fā)

這篇文章主要為大家展示了“Android如何實現(xiàn)旋轉(zhuǎn)、平移、縮放和透明度漸變的補間動畫”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“Android如何實現(xiàn)旋轉(zhuǎn)、平移、縮放和透明度漸變的補間動畫”這篇文章吧。

具體實現(xiàn)如下:

1.在新建項目的res目錄中,創(chuàng)建一個名為anim的目錄,并在該目錄中創(chuàng)建實現(xiàn)旋轉(zhuǎn)、平移、縮放和透明度漸變的動畫資源文件。

透明度漸變的動畫資源文件anim_alpha.xml(完全不透明->完全透明->完全不透明)

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

旋轉(zhuǎn)的動畫資源文件anim_rotate.xml(0度->720度->360度->0度)

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

縮放動畫資源文件anim_scale.xml(放大2倍->收縮回來)

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
 <scale android:fromXScale="1" 
 android:interpolator="@android:anim/decelerate_interpolator" 
 android:fromYScale="1" 
 android:toXScale="2.0" 
 android:toYScale="2.0" 
 android:pivotX="50%" 
 android:pivotY="50%" 
 android:fillAfter="true" 
 android:repeatCount="1" 
 android:repeatMode="reverse" 
 android:duration="2000"/> 
 </set>

平移動畫資源文件anim_translate.xml(屏幕左側(cè)->屏幕右側(cè)->屏幕左側(cè))

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
 <translate 
 android:fromXDelta="0" 
 android:toXDelta="860" 
 android:fromYDelta="0" 
 android:toYDelta="0" 
 android:fillAfter="true" 
 android:repeatMode="reverse" 
 android:repeatCount="1" 
 android:duration="2000"/> 
</set>

主界面資源文件:

res/layout/main.xml:
[html] view plain copy
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:id="@+id/linearLayout1" 
 android:orientation="vertical" 
 > 
 <LinearLayout 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:id="@+id/linearLayout2" 
 android:orientation="horizontal"> 
 <Button android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:id="@+id/button1" 
 android:text="旋轉(zhuǎn)"/> 
 <Button android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:id="@+id/button2" 
 android:text="平移"/> 
 <Button android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:id="@+id/button3" 
 android:text="縮放"/> 
 <Button android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:id="@+id/button4" 
 android:text="透明度變化"/> 
 </LinearLayout> 
 <ImageView android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:id="@+id/imageView1" 
 android:src="@drawable/img1"/> 
</LinearLayout>

效果如圖

Android如何實現(xiàn)旋轉(zhuǎn)、平移、縮放和透明度漸變的補間動畫

2.MainActivity:

在onCreat()方法中,首先獲取動畫資源文件中創(chuàng)建的動畫資源,然后獲取要應用動畫效果的ImageView,再獲取“旋轉(zhuǎn)”按鈕,并為該按鈕添加單擊事件監(jiān)聽器,在重寫onClik()方法中,播放動畫。具體代碼如下:

[java] view plain copy
package com.example.test; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.animation.Animation; 
import android.view.animation.AnimationUtils; 
import android.widget.Button; 
import android.widget.ImageView; 
 
public class MainActivity extends Activity { 
 
 @Override 
 public void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.main); 
 
 final Animation rotate=AnimationUtils.loadAnimation(this, R.anim.anim_rotate);//獲取旋轉(zhuǎn)動畫資源 
 final Animation translate=AnimationUtils.loadAnimation(this, R.anim.anim_translate);//獲取平移動畫資源 
 final Animation scale=AnimationUtils.loadAnimation(this, R.anim.anim_scale);//獲取縮放動畫資源 
 final Animation alpha=AnimationUtils.loadAnimation(this, R.anim.anim_alpha);//獲取透明度變化動畫資源 
 //獲取要應用動畫效果的ImageView 
 final ImageView iv=(ImageView)findViewById(R.id.imageView1); 
 Button button1=(Button)findViewById(R.id.button1);//獲取"旋轉(zhuǎn)"按鈕 
 button1.setOnClickListener(new OnClickListener() { 
 
 @Override 
 public void onClick(View arg0) { 
 //播放旋轉(zhuǎn)動畫 
 iv.startAnimation(rotate); 
 
 } 
 }); 
 
 Button button2=(Button)findViewById(R.id.button2);//獲取"平移"按鈕 
 button2.setOnClickListener(new OnClickListener() { 
 
 @Override 
 public void onClick(View arg0) { 
 //播放平移動畫 
 iv.startAnimation(translate); 
 
 } 
 }); 
 
 Button button3=(Button)findViewById(R.id.button3);//獲取"縮放"按鈕 
 button3.setOnClickListener(new OnClickListener() { 
 
 @Override 
 public void onClick(View arg0) { 
 //播放縮放動畫 
 iv.startAnimation(scale); 
 
 } 
 }); 
 
 Button button4=(Button)findViewById(R.id.button4);//獲取"透明度漸變"按鈕 
 button4.setOnClickListener(new OnClickListener() { 
 
 @Override 
 public void onClick(View arg0) { 
 //播放透明度漸變動畫 
 iv.startAnimation(alpha); 
 } 
 }); 
 } 
}

效果如圖1、圖2、圖3、圖4:

Android如何實現(xiàn)旋轉(zhuǎn)、平移、縮放和透明度漸變的補間動畫Android如何實現(xiàn)旋轉(zhuǎn)、平移、縮放和透明度漸變的補間動畫

Android如何實現(xiàn)旋轉(zhuǎn)、平移、縮放和透明度漸變的補間動畫

Android如何實現(xiàn)旋轉(zhuǎn)、平移、縮放和透明度漸變的補間動畫

以上是“Android如何實現(xiàn)旋轉(zhuǎn)、平移、縮放和透明度漸變的補間動畫”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

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

AI