动画

动画是一种综合艺术门类,是工业社会人类寻求精神解脱的产物,它集合了绘画、漫画、电影、数字媒体、摄影、音乐、文学等众多艺术门类于一身的艺术表现形式。 动画的英文有:animation、cartoon、animated cartoon、cameracature。其中,比较正式的 "Animation" 一词源自于拉丁文字根的anima,意思为灵魂;动词animate是赋予生命,引申为使某物活起来的意思。所以animation可以解释为经由创作者的安排,使原本不具生命的东西像获得生命一般地活动。 早期,中国将动画称为美术片;现在,国际通称为动画片。动画是一门幻想艺术,更容易直观表现和抒发人们的感情,可以把现实不可能看到的转为现实,扩展了人类的想像力和创造力。 广义而言,把一些原先不活动的东西,经过影片的制作与放映,变成会活动的影像,即为动画。“动画”的中文叫法应该说是源自日本。第二次世界大战前后,日本称一线条描绘的漫画作品为“动画”。 动画是通过把人、物的表情、动作、变化等分段画成许多画幅,再用摄影机连续拍摄成一系列画面,给视觉造成连续变化的图画。它的基本原理与电影、电视一样,都是视觉原理。医学已证明,人类具有“视觉暂留”的特性,就是说人的眼睛看到一幅画或一个物体后,在1/24秒内不会消失。利用这一原理,在一幅画还没有消失前播放出下一幅画,就会给人造成一种流畅的视觉变化效果。因此,电影采用了每秒24幅画面的速度拍摄播放,电视采用了每秒25幅(PAL制,中国电视就用此制式)或30幅(NTSC制)画面的速度拍摄播放。如果以每秒低于24幅画面的速度拍摄播放,就会出现停顿现象。 定义动画的方法,不在于使用的材质或创作的方式,而是作品是否符合动画的本质。时至今日,动画媒体已经包含了各种形式,但不论何种形式,它们具体有一些共同点:其影像是以电影胶片、录像带或数字信息的方式逐格记录的;另外,影像的“动作”是被创造出来的幻觉,而不是原本就存在的。

得先有布局

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/iv_frame_image"
        android:background="@drawable/iv_frame"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开始"
        android:onClick="start"
        />

</LinearLayout>

java代码

public class FrameActivity extends AppCompatActivity {


    private ImageView iv_frame_image;
    private AnimationDrawable animationDrawable;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_frame);
        iv_frame_image = (ImageView) findViewById(R.id.iv_frame_image);
        animationDrawable = (AnimationDrawable) iv_frame_image.getBackground();
    }
    public void start(View view){
        animationDrawable.start();
    }
}

 public void operation(View view){
        switch (view.getId()) {
            case R.id.btn_main_alpha:
                //加载动画
                animation = AnimationUtils.loadAnimation(this, R.anim.iv_alpha);
                break;
            case R.id.btn_main_rotate:
                //加载动画
                 animation=AnimationUtils.loadAnimation(this,R.anim.iv_rotate);
                break;
            case R.id.btn_main_scale:
                animation1 = AnimationUtils.loadAnimation(this, R.anim.iv_scale);
                animation2 = AnimationUtils.loadAnimation(this, R.anim.iv_scale2);
                //给动画设置监听
                animation1.setAnimationListener(new Animation.AnimationListener() {
                    @Override
                    public void onAnimationStart(Animation animation) {


                    }


                    @Override
                    public void onAnimationEnd(Animation animation) {
                          iv_main_image.startAnimation(animation2);
                    }


                    @Override
                    public void onAnimationRepeat(Animation animation) {


                    }
                });
                animation2.setAnimationListener(new Animation.AnimationListener() {
                    @Override
                    public void onAnimationStart(Animation animation) {


                    }


                    @Override
                    public void onAnimationEnd(Animation animation) {
                        iv_main_image.startAnimation(animation1);
                    }


                    @Override
                    public void onAnimationRepeat(Animation animation) {


                    }
                });
                iv_main_image.startAnimation(animation1);
                return;
            case R.id.btn_main_translate:
                //animation=AnimationUtils.loadAnimation(this,R.anim.iv_translate);


                ObjectAnimator.ofFloat(iv_main_image,"translationX",0,200).setDuration(2000).start();
                ObjectAnimator.ofFloat(iv_main_image,"translationY",0,200).setDuration(2000).start();


                break;
            case R.id.btn_main_all:
                animation=AnimationUtils.loadAnimation(this,R.anim.iv_all);
                break;
        }
        iv_main_image.startAnimation(animation);


    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值