趙雅智 android frame動畫

2021-09-08 12:46:12 字數 2730 閱讀 7281

在開始例項解說之前,先引用官方文件中的一段話:

frame動畫是一系列依照一定的順序展示的過程,和放電影的機制非常相似。我們稱為逐幀動畫。frame動畫能夠被定義在xml檔案裡,也能夠全然編碼實現。

假設被定義在xml檔案裡,我們能夠放置在/res下的anim或drawable資料夾中(/res/[anim | drawable]/filename.xml),檔名稱能夠作為資源id在**中引用;假設由全然由編碼實現,我們須要使用到animationdrawable物件。

假設是將動畫定義在xml檔案裡的話,語法例如以下:

<?xml version="1.0" encoding="utf-8"?>  

配置資源檔案

在activity中實現frame動畫

例項:執行效果:

步驟

把放到res/drawable資料夾下

分別取名為:a1.png,a2.png,a3.png,a4.png。a5.png。a6.png。

在res/anim資料夾下建立乙個xml配置檔案

我們能夠將frame.xml檔案放置於drawable或anim資料夾,官方文件上是放到了drawable中了,大家能夠依據喜好來放置,放在這兩個資料夾都是能夠執行的。

<?xml version="1.0" encoding="utf-8"?>  

在res/layout資料夾下建立layout配置檔案activity_main.xml

activity**

package com.example.lession13_frame;

import android.graphics.drawable.animationdrawable;

import android.graphics.drawable.drawable;

import android.os.bundle;

import android.view.view;

import android.widget.imageview;

import android.widget.radiogroup;

import android.widget.radiogroup.oncheckedchangelistener;

import android.widget.seekbar;

import android.widget.seekbar.onseekbarchangelistener;

import android.widget.toast;

public class splashactivity extends activity else if (checkedid == r.id.rb_more)

animationdrawable.stop();

animationdrawable.start();

}});

// 監聽的進度條改動透明度

sbalpha.setonseekbarchangelistener(new onseekbarchangelistener()

@override

public void onstarttrackingtouch(seekbar seekbar)

@override

public void onprogresschanged(seekbar seekbar, int progress,

boolean fromuser)

});} public void click(view v)

animationdrawable.setoneshot(false); // 設定為loop

imageview.setbackgrounddrawable(animationdrawable); // 將動畫設定為imageview背景

animationdrawable.start(); // 開始動畫

break;

default:

break;

} }}

animationdrawable 就是用來控制這個幀動畫,這個類中提供了非常多方法。

拖動進度條設定alpha值的時候 一定要使用     imageview.postinvalidate(); 方法來通知ui執行緒重繪螢幕中的imageview  否則會看不到透明的效果 。

純**實現:

//全然編碼實現的動畫效果  

for (int i = 1; i <= 6; i++)

animationdrawable.setoneshot(false); //設定為loop

imageview.setbackgrounddrawable(animationdrawable); //將動畫設定為imageview背景

animationdrawable.start(); //開始動畫

break;

趙雅智 java變數

命名規則 第乙個單詞首字母小寫,後面每個單詞首字母大寫。類變數 與類共存亡 類名 例項名 類變數名 通過例項名修改類變數,與類修改效果一樣,其他變數再訪問就是被修改過的值。例項變數 與例項共存亡 例項名 例項變數名 允許局變和成變同名,this 例項 類名 類 作為訪問者限定訪問成變 定義dog類,...

趙雅智 java 介面

規範與實現相分離的設計哲學 擴充套件功能 降低耦合 乙個類可以繼承乙個父類,可以實現多個介面 介面是另一種定義資料型別的方式,它和類非常相似的。介面中只包含常量,抽象方法 定義介面 public inte ce 介面名 extends 父介面1,父介面2,public 預設時 包內可訪問 介面支援多...

趙雅智 java 內部類

內部類 宣告 static 非static private protected public及預設。class enclosingclass 內部類例項 public class outerclass public static void main string args outer x 10 in...