安卓動畫(一)
安卓動畫
檢視動畫
幀動畫(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動畫詳解(二)-自定義屬性安卓動畫
- 【安卓逆向】一個畫圖AI軟體的會員分析安卓AI
- 安卓開發第一步:安卓面試題安卓面試題
- 安卓驅動、HAL、JNI與java安卓Java
- 安卓啟動時間獲取安卓
- 扒一扒安卓渲染原理安卓
- 安卓安卓
- 【Android 動畫】動畫詳解之補間動畫(一)Android動畫
- 安卓自動化打包環境搭建安卓
- 安卓-自動切換APP圖示安卓APP
- 自學安卓app開發(一)安卓APP
- 扒一扒安卓的渲染原理安卓
- 安卓應用優化:使用反射測試安卓裝置是否使用“動態桌布”安卓優化反射
- Shell指令碼 | 一鍵解除安裝安卓App指令碼安卓APP
- 看雪安卓研修班,安卓逆向安卓
- Javascript動畫(一)JavaScript動畫
- delphi安卓動態許可權申請安卓
- 安卓 no_proxy安卓
- 安卓平臺Flutter啟動過程全解析安卓Flutter
- 鴻蒙OS 2.0手機開機畫面演示:終於去掉安卓鴻蒙安卓
- iOS 動畫技巧 (一)iOS動畫
- 安卓動態獲取許可權看這一篇就夠了安卓
- 一個安卓程式媛的人生經驗安卓
- FishRedux完成一個玩安卓客戶端Redux安卓客戶端
- 修改安卓ID為硬體唯一ID安卓
- 畫素風手遊《流浪者小島》安卓全平臺上線安卓
- 安卓開發:viewpager + fragment 實現滑動切換安卓ViewpagerFragment
- 移動端安卓手機車牌識別SDK安卓
- H5與安卓/IOS進行原生互動H5安卓iOS
- 安卓自動化Tasker和Macrodroid(含ADB除錯)安卓Mac除錯
- CSS 怎樣寫一個動畫(從基礎動畫到3d動畫)CSS動畫3D
- Flutter動畫:用Flutter來實現一個拍手動畫Flutter動畫
- 系統學習iOS動畫之一:檢視動畫iOS動畫
- 記一次安卓webview查錯過程安卓WebView
- 安卓自定義的AlertDialog的一些使用安卓
- 看雪安卓容器安卓
- 安卓四種引用安卓
- 安卓關閉fragment安卓Fragment