日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 张口逐帧动画,《Android 动画》逐帧动画

發布時間:2023/12/29 Android 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 张口逐帧动画,《Android 动画》逐帧动画 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于 Android 的動畫學習可以分為以下幾個大類:

逐幀動畫

補間動畫(也說 View 動畫)

屬性動畫

轉場動畫

這里注意,我只是從學習的角度分為了這四類;從面試的角度,只需要說前面三類,轉場動畫只是一種動畫形態,不是一個類別。

本篇詳細學習逐幀動畫。

主要內容

逐幀動畫的概念

如何使用

實戰操作

什么是逐幀動畫?

小時候大家可能做過一件事情,在書的一角,每一頁都畫一個圖,然后快速翻看,就形成了連續的動畫效果,這就是逐幀動畫。視頻技術也一樣,要求1秒內達到多少幀,通過視覺停留讓我們感覺是連貫的影片,如果單位時間內的幀數很少,那我們就會感到明顯的頓挫感。

如何使用?

1、通過上面的描述我們已經了解到逐幀動畫就是一幀一幀連續播放的效果。

2、準備好一組圖片,這組圖片連續播放后能形成視頻的感覺。比如日落效果,我們可以準備一組不同位置的太陽圖片,由高到低;比如汽車前行的效果,準備一組行駛在路上不同位置的汽車照片,每張圖片中汽車的位移相差1米。圖片的數量可以是任意的,5張、10張、20張,給每張圖片設定一個顯示的時間,例如200毫秒,那么這些圖片就會每200毫秒依次播放,最終形成逐幀動畫的效果。

實戰操作

先看下面這張Gif圖:

逐幀動畫實現Loading效果

我們看到是一個持續旋轉加載的效果,但這其實是8張靜態圖片通過逐幀動畫實現的。

8張靜態圖片

首先我們將制作好的8張圖片放到項目目錄 res/drawable-xxhdpi 下面(沒有這個文件夾的話可以新建一個),然后在 drawable 文件夾下新建一個動畫 xml 文件。

右擊 drawable 文件夾,選擇 New -> Drawable resource file,如下圖:

新建動畫xml文件

輸入文件名,比如 progress_round,Root element 選擇 animation-list

輸入文件名,選擇 Root element

progress_round.xml:

xmlns:android="http://schemas.android.com/apk/res/android"

android:oneshot="false">

按照上面的寫法,android:oneshot="false" 表示循環播放,如果為 true 的話,則只播放一次便停止在最后一張圖。有幾張圖片就寫幾個item,duration 表示這張圖片的播放時長,單位是毫秒,這里是200毫秒。

接著在頁面布局文件中放置一個 ImageView 控件,給 ImageView 設置 background,引用上面的 progress_round.xml 動畫文件。

activity_anim_frame.xml:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:padding="15dp">

android:id="@+id/btn_frame"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/progress_round"

android:layout_centerInParent="true"/>

但是注意,設置完了 background 之后,動畫并不會播放,因為默認是不播放,需要我們在代碼中調用 AnimationDrawable 的 start() 方法來啟動,如果需要停止的話,可以調用 AnimationDrawable 的 stop() 方法。

FrameAnimActivity.class:

package com.skypan.helloworld.anim;

import android.graphics.drawable.AnimationDrawable;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.widget.ImageView;

import com.skypan.helloworld.R;

public class FrameAnimActivity extends AppCompatActivity {

private ImageView mIvFrame;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_anim_frame);

mIvFrame = (ImageView) findViewById(R.id.btn_frame);

AnimationDrawable animationDrawable = (AnimationDrawable) mIvFrame.getBackground();

animationDrawable.start();

}

}

把用到的圖片分享給大家

資源圖片

謝謝支持!

歡迎關注微信公眾號:程序員都關注

總結

以上是生活随笔為你收集整理的android 张口逐帧动画,《Android 动画》逐帧动画的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。