編輯:關於Android編程
作為Android開發者,動畫是非常重要的知識點,本文主要從入門角度來探索動畫。 Android的動畫主要包括三大類:逐幀(Frame)動畫,補間(Tween)動畫,屬性動畫。
逐幀動畫是最容易理解,最簡單的動畫。但需要把動畫過程的每一幀靜態圖片都放到資源文件夾res/drawbale
下,然後由Android來控制依次顯示這些靜態圖片,利用人眼“視覺暫留”的原理,從而產生“動畫”的錯覺。實現方式與電影、動漫的原理一樣。
每一幀的圖片,可以是比如.jpg, .png格式的圖片文件,也可以是通過xml定義的圖形。下面通過一個實例來講解逐幀動畫的使用。
1.1 動畫資源文件
frame_animation.xml
放在文件夾res/drawable/
下,該逐幀動畫包含3張圖片wheel0.png, wheel1.png, wheel2.png:
<animation-list android:id="@+id/selected" android:oneshot="false">
<item android:drawable="@drawable/wheel0" android:duration="50" />
<item android:drawable="@drawable/wheel1" android:duration="50" />
<item android:drawable="@drawable/wheel2" android:duration="50" />
</animation-list>
1.2 調用方法
ImageView img = (ImageView)findViewById(R.id.wheel_image);
img.setBackgroundResource(R.drawable.frame_animation);
AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
frameAnimation.start();
1.3 參數說明
補間動畫,只需指定動畫開始幀、結束幀,而對於動畫中間的過程,都有系統計算來填充的,而無需定義中間的每一幀。 動畫變化主要包括4類型: 透明度動畫(Alpha
),縮放動畫(Scale
),位移動畫(Translate
),旋轉動畫(RotateAnaimation
)
1.1 動畫資源文件
tween_animation.xml
放在文件夾res/anim/
下, 該動畫同時包括透明度,縮放,位移,旋轉4種變化,當然也可以是其中一種,或幾種變化的組合。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
<alpha
android:fromAlpha="0.5"
android:toAlpha="1.0"
android:duration="1000" />
<scale
android:fromXScale="0.01"
android:toXScale="1.0"
android:fromYScale="0.01"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="true" />
<translate
android:fromXDelta="0.01"
android:toXDelta="0.95"
android:fromYDelta="0.01"
android:toYDelta="0.95" />
<rotate
android:fromDegrees="0.01"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%" />
<set>
1.2 調用方法
ImageView img = (ImageView)findViewById(R.id.wheel_image);
Animation tweenAnimation = AnimationUtils.loadAnimation(this, R.anim.tween_animation);
img.startAnimation(tweenAnimation);
1.3 參數說明
android:duration, 動畫持續時長,每一個動畫都可以單獨指定duration;
屬性動畫,是補間動畫的增強版,但更加靈活。可直接修改任何屬性,使之形成動畫,功能非常強大,也是最常用的動畫。下面舉個簡單的例子:
ObjectAnimator anim = ObjectAnimator.ofFloat(targetObject, "alpha", 0f, 1f);
anim.setDuration(1000);
anim.start();
最近看了一些android的源碼,發現設計模式無處不在啊!感覺有點亂,於是決定要把設計模式好好梳理一下,於是有了這篇文章。1. Singleton(單例模式)作用:
ChangeMode項目地址:ChangeMode Implementation of night mode for Android. 用最簡單的方式實現夜間模式,支持L
先來張效果圖(可以滑動切換頁卡) 主頁面布局文件 remind_auction_new_list.xml : 主頁面代碼: public c
listview作為一個常用控件,對listview的操作都應該滾瓜爛熟了。對listview 的數據管理也很熟悉。包括listview的單擊,雙擊,多選刪除,完成刷新,