Android 幀動畫打造動態ImageView
實現
新建AnimatorImageView 繼承AppCompatImageView/ImageView
public class AnimatorImageView extends AppCompatImageView {
public AnimatorImageView(Context context) {
super(context);
}
public AnimatorImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public AnimatorImageView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
if (getVisibility() == VISIBLE) {
animator(true);
}
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
animator(false);
}
@Override
public void setVisibility(int visibility) {
super.setVisibility(visibility);
if (VISIBLE == visibility) {
animator(true);
} else {
animator(false);
}
}
/**
* 啟動或停止動畫
* @param start
* true為啟動動畫; false為停止動畫
*/
public void animator(boolean start) {
try {
AnimationDrawable animationDrawable = (AnimationDrawable) getDrawable();
if (animationDrawable == null) {
return;
}
animationDrawable.stop();
if (start) {
animationDrawable.start();
}
} catch (Exception e) {
Log.e("AnimatorImageView", e.getMessage());
}
}
}
呼叫
1、drawable中新建animation-list檔案practicing_animator.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="200" android:drawable="@mipmap/practicing1" />
<item android:duration="200" android:drawable="@mipmap/practicing2" />
<item android:duration="200" android:drawable="@mipmap/practicing3" />
<item android:duration="200" android:drawable="@mipmap/practicing4" />
</animation-list>
2、layout佈局檔案中呼叫(呼叫方式與ImageView相同)
<xxx.xxx.xxx.AnimatorImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/practicing_animator" />
相關文章
- Android 幀動畫使用Android動畫
- Android 動畫詳解:屬性動畫、View 動畫和幀動畫Android動畫View
- Android備忘錄《幀動畫》Android動畫
- View動畫、幀動畫View動畫
- 幀動畫動畫
- Unity幀動畫Unity動畫
- Android佈局中動態新增ImageView並設定間隔AndroidView
- CSS3動畫之逐幀動畫CSSS3動畫
- iOS 關鍵幀動畫iOS動畫
- 逐幀動畫的使用動畫
- Android動畫Android動畫
- android 動畫Android動畫
- Android 動畫之屬性動畫Android動畫
- CSS3 animation逐幀動畫CSSS3動畫
- 【Android 動畫】動畫詳解之補間動畫(一)Android動畫
- 【Android 動畫】動畫詳解之屬性動畫(三)Android動畫
- 【Android 動畫】動畫詳解之屬性動畫(五)Android動畫
- Android 動畫初探Android動畫
- Android之動畫Android動畫
- css3實現逐幀動畫CSSS3動畫
- Android優化幀動畫過程中的多執行緒模型思考Android優化動畫執行緒模型
- 動態的新增ImageView到LinearLayout中並居中顯示View
- iOS動畫專題·UIView二維形變動畫與CAAnimation核心動畫(transform動畫,基礎,關鍵幀,組動畫,路徑動畫,貝塞爾曲線)iOS動畫UIViewORM
- Android 轉場動畫Android動畫
- Android 動畫實現Android動畫
- android屬性動畫Android動畫
- Android:動畫詳解Android動畫
- Android 補間動畫Android動畫
- Android備忘錄《View動畫(補間動畫)》AndroidView動畫
- 幀動畫記憶體OOM?不存在的!—— SurfaceView逐幀解析動畫記憶體OOMView
- 一起動手實現一個js幀動畫庫JS動畫
- Android動畫:行雲流水的向量圖示動畫Android動畫
- 【Android 動畫】動畫詳解之插值器(二)Android動畫
- Python 精靈模組_幀動畫_純畫筆下雪效果.pyPython動畫
- CSS動畫屬性關鍵幀keyframes全解析CSS動畫
- Android Lottie動畫庫研究Android動畫
- Android全套動畫使用技巧Android動畫
- Android 動畫框架實現Android動畫框架