安卓動畫(一)
安卓動畫
檢視動畫
幀動畫(loading介面,上拉重新整理時)
res/drawable/animation-list標籤
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/image1" android:duration="200"></item>
<item android:drawable="@drawable/image2" android:duration="200"></item>
<item android:drawable="@drawable/image3" android:duration="200"></item>
</animation-list>
public class Main5Activity extends AppCompatActivity {
ImageView imageView;
AnimationDrawable animation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main5);
imageView = findViewById(R.id.image_1);
animation = (AnimationDrawable) imageView.getBackground();
}
public void startAnim(View view) {
animation.start();
}
public void stopAnim(View view) {
animation.stop();
}
}
補間動畫(頁面切換)
1.位置:res/anim/
2.事件:onAnimationStart、onAnimationEnd、onAnimationRepeat
3.分類:旋轉、平移、透明度、縮放
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360"
android:duration="2000"></rotate>
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_translate:
TranslateAnimation translateAnimation =
(TranslateAnimation) AnimationUtils.loadAnimation(this,R.anim.image_anim);
//動畫結束後不回到起點
translateAnimation.setFillAfter(true);
translateAnimation.setRepeatCount(1);
//REVERSE 從終點重複 RESTART 回到起點重複
translateAnimation.setRepeatMode(TranslateAnimation.RESTART);
imageView.startAnimation(translateAnimation);
translateAnimation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
Log.d("amy", "onAnimationStart: ");
}
@Override
public void onAnimationEnd(Animation animation) {
Log.d("amy", "onAnimationEnd: ");
}
@Override
public void onAnimationRepeat(Animation animation) {
//設定了重複數量才會走到這個方法中
Log.d("amy", "onAnimationRepeat: ");
}
});
break;
case R.id.btn_rotate:
RotateAnimation rotateAnimation = (RotateAnimation) AnimationUtils.loadAnimation(this,R.anim.image_anim_rotate);
imageView.startAnimation(rotateAnimation);
break;
case R.id.btn_scale:
ScaleAnimation animation = (ScaleAnimation) AnimationUtils.loadAnimation(this,R.anim.image_anim_scale);
animation.setDuration(2000);
imageView.startAnimation(animation);
break;
case R.id.btn_alpha:
AlphaAnimation alphaAnimation = (AlphaAnimation) AnimationUtils.loadAnimation(this,R.anim.image_anim_alpha);
alphaAnimation.setDuration(2000);
imageView.startAnimation(alphaAnimation);
break;
case R.id.btn_group:
AnimationSet set = new AnimationSet(true);
AlphaAnimation alphaAnimation1 = (AlphaAnimation) AnimationUtils.loadAnimation(this,R.anim.image_anim_alpha);
alphaAnimation1.setDuration(2000);
ScaleAnimation scaleAnimation = (ScaleAnimation) AnimationUtils.loadAnimation(this,R.anim.image_anim_scale);
scaleAnimation.setDuration(2000);
set.addAnimation(alphaAnimation1);
set.addAnimation(scaleAnimation);
imageView.startAnimation(set);
break;
}
}
屬性動畫
case R.id.btn_vAnimTranslate:
ValueAnimator valueAnimator = ValueAnimator.ofInt(0,100);
valueAnimator.setDuration(2000);
valueAnimator.setInterpolator(new LinearInterpolator()); //自由落體插值器
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) imageView.getLayoutParams();
layoutParams.leftMargin = (int) animation.getAnimatedValue();
// layoutParams.bottomMargin = (int) animation.getAnimatedValue();
imageView.setLayoutParams(layoutParams);
}
});
valueAnimator.start();
break;
相關文章
- 安卓Property Animator動畫詳解(一)-官方文件安卓動畫
- 安卓動畫使用小結安卓動畫
- 安卓動畫基礎講解安卓動畫
- 安卓Property Animator動畫詳解(二)-自定義屬性安卓動畫
- 【Android 動畫】動畫詳解之補間動畫(一)Android動畫
- Javascript動畫(一)JavaScript動畫
- iOS 動畫技巧 (一)iOS動畫
- 安卓開發第一步:安卓面試題安卓面試題
- 扒一扒安卓渲染原理安卓
- 自學安卓app開發(一)安卓APP
- Flutter 動畫詳解(一)Flutter動畫
- 一窺 Android 動畫Android動畫
- 一些動畫教程動畫
- Flutter動畫:用Flutter來實現一個拍手動畫Flutter動畫
- 系統學習iOS動畫之一:檢視動畫iOS動畫
- CSS 怎樣寫一個動畫(從基礎動畫到3d動畫)CSS動畫3D
- 每週一個前端動畫之二:支援率展示動畫前端動畫
- 每週一個前端動畫之三:twitter點贊動畫前端動畫
- 14天學會安卓開發(第十二天)Android動畫技術安卓Android動畫
- 扒一扒安卓的渲染原理安卓
- 核心動畫程式設計(一)動畫程式設計
- css3 動畫(一) transitionCSSS3動畫
- 一個例子上手 SVG 動畫SVG動畫
- 自定義轉場動畫(一)動畫
- iOS UITableViewCell的動畫效果(一)iOSUIView動畫
- Android屬性動畫詳解(一),屬性動畫基本用法Android動畫
- 淺析Android動畫(一),View動畫高階例項探究Android動畫View
- 一個簡單的載入動畫(一)動畫
- 每週一個前端動畫之一:UC瀏覽器球隊展示動畫的實現前端動畫瀏覽器
- 安卓學習筆記之Activity(一)安卓筆記
- 安卓旅途之——開發數獨(一)安卓
- 每週一個前端動畫之四:掘金頭像旋轉動畫前端動畫
- Android原始碼解析(一)動畫篇-- Animator屬性動畫系統Android原始碼動畫
- iOS史上最詳細的動畫講解-載入等待動畫(一)iOS動畫
- three.js 自制骨骼動畫(一)JS動畫
- 成為Flutter動畫大師(一)Flutter動畫
- Android轉場動畫一說Android動畫
- 前端動畫專題(一):字型特效前端動畫特效