图片 1

android中补间动漫分为透明动漫,旋转动漫,缩放动漫和位移移动,动漫能够效率在具有的view上,动漫能够独自行使,也得以多个卡通一同利用。

《LoveLive!Sunshine!!》是三回元偶像布置中的生机勃勃环,动漫由日升动漫制作,传说发生在兵库县沼津市近海的小镇、位於内浦的民间兴办浦之星女生高校。以2年级的高海千歌为主导的9名少女,怀抱著远大的想望自我介绍。本次展览的正是2年三个人组景品。

根本写在后边

android动漫中装有关乎到坐标的地点,坐标原点都以view的左上角。

补间动画只可以在视觉上转移view的事态,可是view实际上照旧以本来的大大小小在原先的职责上。比方把三个view从左上角移动到了右下角,这一个那一个view其实还在左上角,只是在视觉上运动到了右下角,借使view上有一些击事件,那么独有一点点左上角那些地方能力触发点击事件,点右下角不会有任何反应。

大器晚成 用代码的艺术写补间动漫
不无动漫的公物属性

此间列出富有动漫皆有个别艺术,满含二种动漫以至AnimationSet,那个动漫片的合集

//设置动画的持续时间
alphaAnimation.setDuration(2000);
 //设置动画播放完毕后是否保持在动画播放完毕的状态
alphaAnimation.setFillAfter(true);
/*
设置动画的重复次数,这里的重复次数指的是动画第一次播放完毕后还会重复播放几次,这里设置为3,就是动画一共播放四次,开始执行一次动画,然后再重复执行三次。
 */
alphaAnimation.setRepeatCount(3);
/*
设置动画重复的模式
有Animation.RESTART:在动画多次播放时每一次都和第一次一样,重复执行
 Animation.REVERSE:每一次执行动画是,和上一次执行相反的操作
例如动画是把view放大到原来的两倍,动画一共执行4次
如果是Animation.RESTART,就会每次都从view本身的大小变到2倍的大小,这一过程一共执行4次
如果是Animation.REVERSE,则第一回从本身大小到2倍,第二回从2倍到本身大小,第三回从2倍到view本身第四回再从view本身到2倍
*/
 alphaAnimation.setRepeatMode(Animation.REVERSE);

用透明动漫例如

单身使用动漫片

1 AlphaAnimation
AlphaAnimation是晶莹剔透动漫,能够更动view的反射率
1.1 创设动画

//创建动画,并设置起止透明度,传入的数据是浮点型,需要加f
//参数范围从0到1,0表示完全透明,1表示完全不透明
//第一个参数为开始的时候的透明度,第二个参数为结束的时候的透明度
AlphaAnimation alphaAnimation=new AlphaAnimation(1.0f,0);
alphaAnimation.setDuration(2000);
alphaAnimation.setRepeatCount(3);
alphaAnimation.setRepeatMode(Animation.REVERSE);

1.2 推行动漫
率先找到要求执行动漫的view,然后调用startAnimation方法,并传播须要奉行的动漫

imageView.startAnimation(alphaAnimation);

2 ScaleAnimation
缩放动漫,调整view的缩放
2.1 创建动漫

 /*传入8个参数
前4个参数分别为:
开始长度的缩放比例,终止长度的缩放比例,其实宽度的缩放比例,终止宽度的缩放比例
这四个参数都是浮点型的,代表和原view相比放大或者缩小的比例,1.0代表不变,2.0代表放大到原来的2被,0.5则代表缩小到原来的0.5倍
后四个参数设置缩放的中心点。分别为:
x轴的模式,x轴中心点的位置,y轴的模式,y轴中心点的位置
模式有三种
Animation.RELATIVE_TO_SELF:相对于自己
Animation.RELATIVE_TO_PARENT:相对于父元素
Animation.ABSOLUTE:绝对距离
如果是前两种模式,后面传入的参数代表时父元素或者自己的几倍
例如下面这种写法,代表相对于自己,大小是自己长宽的0.5倍,那么中心点x轴坐标就在空间长度一半的位置
y轴坐标也在控件一半的位置,(android动画中坐标原点都在执行该动画的view的左上角),那个中心点就是该元素的中心。
相对于父元素的也是如此,这两种x,y的坐标是相对的view乘以相应的比例得到的
如果是第三种模式,那个传入的参数谁也不相对,传入的参数是多少,坐标就是多少,坐标原点永远是view的左上角
*/
ScaleAnimation scaleAnimation=new ScaleAnimation(1.0f,2.0f,1.0f,2.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

能够再设置有些别的急需的参数
2.2 实行动画
执行动漫都以如出意气风发辙的操作
3 RotateAnimation
旋转动画,调控view的旋转操作
3.1 创立动漫

/*
传入6个参数,前2个参数是开始时旋转的角度,和结束时旋转的角度
正数代表顺时针,负数代表逆时针
后四个参数为设置旋转的中心点,和ScaleAnimation设置中心点一致
*/
RotateAnimation rotateAnimation=new RotateAnimation(0,360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

能够安装某个其它的参数
3.2 奉行动画
试行动漫都以千篇大器晚成律的
4 TranslateAnimation
位移动漫,调控view的移动
4.1 制造动漫

/*
传入8个参数
一共四组,分别为
起始时view的左上角x轴坐标
结束时view的左上角x坐标
起始时view的左上角y坐标
结束时view的左上角y坐标
view左上角坐标默认为(0,0)
每一组是一个模式加一个值组成的,模式和值进行计算得出实际的坐标值
有关模式的可以看ScaleAnimation中的讲解
 */
TranslateAnimation translateAnimation=new TranslateAnimation(Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0.5f);

能够设置有个别其余的参数
4.2 实施动漫

卡通合集

5 AnimationSet
卡通的合集,使用它能够操纵前面列出的八种动漫中的意气风发种恐怕三种一齐实践
5.1 创建AnimationSet

//传入一个boolean类型的参数,这个参数控制的是动画执行时是匀速执行还是不匀速执行
//这个参数不好用,直接都传入true,让他匀速执行就可以
 AnimationSet animationSet=new AnimationSet(true);

5.2 将动漫参与到AnimationSet中

animationSet.addAnimation(translateAnimation);
animationSet.addAnimation(scaleAnimation);
animationSet.addAnimation(alphaAnimation);
animationSet.addAnimation(rotateAnimation);

5.3
能够设置有个别参数,即使在set中装置参数,就能够对set中存有的动漫片起功用,各类动漫本身设置的参数只对友好起功能

animationSet.setDuration(2000);

5.4 执行动漫

imageView.startAnimation(animationSet);
二 用xml的章程定义补间动漫

用代码定义的卡通都足以用xml的不二法门完结
首先在res目录下树立三个anim目录
再在anim目录下树立一个动画文件,在那动漫文件中开头写xml

同等先说全数动漫的公物属性

毫相当的少说,和下边完全风流洒脱致,供给说一点,不经常那个属性未有代码提醒,直接手打出来就能够。

android:duration="2000"
android:repeatMode="restart"
android:repeatCount="3"
android:fillAfter="true"

1 透明动漫
1.1 在xml文件中写动漫

<!--需要说明的有两个参数
 fromAlpha,toAlpha,分别代表开始的透明度和结束的透明度,大小从0到1
在xml中浮点型不用加f
-->
<alpha
android:fromAlpha="1"
android:toAlpha="0"
android:duration="2000"
android:repeatMode="restart"
android:repeatCount="3"
android:fillAfter="true"/>

1.2 执行动漫

//用AnimationUtils工具类把动画加载进行,传入两个参数,一个上下文,一个动画资源的id
AlphaAnimation animation=AnimationUtils.loadAnimation(this,R.anim.animation);
//执行动画
imageView.startAnimation(animationSet);

2 缩放动画
2.1 创造动漫

 <!--
    fromXScale:开始时长度的大小,参数代表这个长度和view自身长度的比例,即这个长度是view自身长度的几倍
    toXScale:结束是长度的大小
    fromYScale:开始时宽度的大小
    toYScale:结束是宽度的大小
    pivotX:旋转中心点横坐标,可以传入三种类型的参数,
    50%,代表横坐标view自身的长度的50%
    50%p,代表横坐标是父元素控件的50%
    50,代表横坐标就是50。
    坐标原点是view的左上角坐标
    pivotY:旋转中心点纵坐标
    同pivotX
    -->
    <scale
        android:fromXScale="1"
        android:toXScale="2"
        android:fromYScale="1"
        android:toYScale="2"
        android:pivotX="50%"
        android:pivotY="50%"/>

2.2 施行动漫
加载动漫,推行动漫
3 旋转动漫
3.1 创造动漫

 <!--
    fromDegrees:开始角度
    toDegrees:结束角度
    pivotX,pivotY:设置旋转中心点,和scale中的一样
    -->
    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="50%"
        android:pivotY="50%"/>

3.2 推行动漫
加载动漫,并举办动漫
4 位移动漫
4.1 成立动漫

 <!--
    fromXDelta:动画开始时view左上角x坐标的位置
    toXDelta:动画结束时view左上角x坐标的位置
    fromYDelta:动画开始时view左上角坐标的位置
    toYDelta:动画结束时view左上角y坐标的位置
    这四个参数都可以传入
    50%,代表横坐标view自身的长度的50%
    50%p,代表横坐标是父元素控件的50%
    50,代表横坐标就是50。
    坐标原点是原始view的左上角坐标
    -->
    <translate
        android:fromXDelta="0"
        android:toXDelta="0"
        android:fromYDelta="0"
        android:toYDelta="50%"/>

4.2 试行动漫
加载动画,实践动漫

动漫片合集

5 set 动漫的合集
那时根成分是set成分,set成分中得以写入八个卡通
set能够设置属性,set中的属性全部动漫分享,动漫内部的品质唯有该动漫自个儿能够行使
5.1 创制动画

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000">
    <alpha
        android:fromAlpha="1"
        android:toAlpha="0"
        android:duration="2000"
        android:repeatMode="restart"
        android:repeatCount="3"
        android:fillAfter="true"/>
    <translate
        android:fromXDelta="0"
        android:toXDelta="0"
        android:fromYDelta="0"
        android:toYDelta="50%"/>
    <scale
        android:fromXScale="1"
        android:toXScale="2"
        android:fromYScale="1"
        android:toYScale="2"
        android:pivotX="50%"
        android:pivotY="50%"/>
    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="50%"
        android:pivotY="50%"/>
</set>

5.2 施行动漫

 AnimationSet set= (AnimationSet) AnimationUtils.loadAnimation(this,R.anim.animation);
imageView.startAnimation(set);
admin 热播动漫

发表评论

电子邮件地址不会被公开。 必填项已用*标注