美文网首页
Android Scale动画

Android Scale动画

作者: AlanFu | 来源:发表于2018-05-31 17:57 被阅读0次

前年做cocos开发,按钮会自带触摸放大效果,会带来不错的交互体验,而且也可以节省图片与内存。于是乎,今天在android也实现了类似效果。实际体验,感觉还不错。其实Android动画库也很强大的。

  • 第一步 在res下面创建文件夹anim,用来放置动画xml。
  • 第二步 在anim下面创建文件btn_scale_down.内容如下:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator= "@android:anim/decelerate_interpolator"
    android:duration="200"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="0"
    android:repeatMode="restart"
    android:fillAfter="true"
    android:startOffset="0"
    android:toXScale="1.1"
    android:toYScale="1.1" />
  • 第三步 在anim下面创建文件btn_scale_up.内容如下:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator= "@android:anim/decelerate_interpolator"
    android:duration="200"
    android:fromXScale="1.1"
    android:fromYScale="1.1"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="0"
    android:fillAfter="true"
    android:startOffset="0"
    android:toXScale="1.0"
    android:toYScale="1.0" />
  • 第四步 为button设置触摸监听事件。进行一定封装,成为工具代码。代码如下:
 /***
     * 为控件设置放大动画
     * @param context
     * @param view
     */
    public static void setSaleAnim(final Context context, View view){
        view.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent event) {
                //按下操作
                if(event.getAction()==MotionEvent.ACTION_DOWN){
                    Animation animation= AnimationUtils.loadAnimation(context, R.anim.btn_scale_down);
                    view.startAnimation(animation);
                }
                //抬起操作
                if(event.getAction()==MotionEvent.ACTION_UP){
                    Animation animation=AnimationUtils.loadAnimation(context, R.anim.btn_scale_up);
                    view.startAnimation(animation);
                }
                //移动操作
                if(event.getAction()==MotionEvent.ACTION_MOVE){
                }
                return false;
            }
        });
    }
致谢
参考文章

说明:本文xml各字段的含义在参考文章都有详细说明,读者可自行查阅。

相关文章

网友评论

      本文标题:Android Scale动画

      本文链接:https://www.haomeiwen.com/subject/defcsftx.html