Android动画效果——1.帧动画2.补间动画3.跳转画面(三)

Android——动画效果1.帧动画2.补间动画3.跳转画面

插值器类 xml属性值 说明
LinearInterpolator @android:anim/linear_interpolatorr 动画以均匀的速度改变。
AccelerateInterpolator @android:anim/accelerate_interpolator 在动画开始时改变速度较慢,然后开始加速。
AccelerateDecelerateInterpolator @android:anim/accelerate_decelerate_interpolator 在动画开始、结束的时改变速度较慢,中间时加速。
CycleInterpolator @android:anim/cycle_interpolator 动画循环播放特定次数,变化速度按正弦曲线改变。
DecelerateInterpolator @android:anim/decelerate_interpolator 在动画开始的是改变速度较快,然后开始减速。
AnticipateInterpolator @android:anim/accelerate_interpolator 先向相反方向改变一段再加速播放。
AnticipateOvershootInterpolator @android:anim/anticipate_overshoot_interpolator 开始的时向后然后向前甩一定值后返回到达最后的值。
BounceInterpolator @android:anim/bounce_interpolator 跳跃,快到目的值时值会跳跃。
OvershottInterpolator @android:anim/overshoot_interpolator 回弹,超出目的值然后缓慢改变到目的值。

补间动画amin——amin1 帧动画drawable——amin2

 if(id == R.id.action_settings)
{

//补间动画 实例

Animation animation= AnimationUtils.loadAnimation(getBaseContext(),R.anim.anim1);

an1.startAnimation(animation);

}else if(id == R.id.action_settings1)
{

//帧动画

an2.setBackgroundResource(R.drawable.anim2);

animation=(AnimationDrawable)an2.getBackground();

animation.start();

}else if(id == R.id.action_settings2)
{

//属性动画

ObjectAnimator oja=ObjectAnimator.ofFloat(an3,"rotation",0,360);

oja.setDuration(3000);

oja.setRepeatCount(1);

//设置插补器

oja.setInterpolator(newAccelerateDecelerateInterpolator());

oja.start();

}else if(id == R.id.action_settings3)
{

ObjectAnimator oja=ObjectAnimator.ofFloat(an4,"alpha",1,0);

oja.setDuration(4000);

oja.setRepeatCount(1);

oja.setRepeatMode(ObjectAnimator.REVERSE);

oja.setInterpolator(newLinearInterpolator());

oja.start();

}

渐进出现

点击 交回 正常

点击图片动画效果

1.动画效果

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.jreduch728.Tool_barActivity">

    <item android:id="@+id/home"
        android:title="主页"
        android:icon="@mipmap/ic_launcher"
        app:showAsAction="ifRoom|withText">
    </item>
    <item android:id="@+id/home1"
        android:title="查找"
        android:icon="@mipmap/ic_launcher"
        app:showAsAction="ifRoom|withText">
    </item>
    <group>
        <item
            android:id="@+id/action_settings"
            android:orderInCategory="100"
            android:title="动画效果0"
            android:icon="@mipmap/ic_launcher"
            app:showAsAction="never" />
        <item
            android:id="@+id/action_settings1"
            android:orderInCategory="100"
            android:title="动画效果1"
            android:icon="@mipmap/qqq"
            app:showAsAction="never">
            <menu>
                <item android:title="动画效果。。。"></item>
            </menu>
        </item>

        <item
            android:id="@+id/action_settings2"
            android:orderInCategory="100"
            android:title="动画效果2"
            android:icon="@mipmap/ic_launcher"
            app:showAsAction="never" />
        <item
            android:id="@+id/action_settings3"
            android:orderInCategory="100"
            android:title="动画效果3"
            android:icon="@mipmap/ic_launcher"
            app:showAsAction="never" />

    </group>

</menu>
package com.example.jreduch728;

import android.animation.ObjectAnimator;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.view.menu.MenuBuilder;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.BounceInterpolator;
import android.view.animation.LinearInterpolator;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import java.lang.reflect.Method;

public class Tool_barActivity extends AppCompatActivity {
private TextView an1;
    private ImageView an2;
    private   AnimationDrawable animation;
    private TextView an3;
    private TextView an4;
    private Button bt2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tool_bar);
        an1=(TextView)findViewById(R.id.an1) ;
        an2=(ImageView)findViewById(R.id.an2) ;
        an3=(TextView)findViewById(R.id.an3) ;
        an4=(TextView)findViewById(R.id.an4) ;
        bt2=(Button)findViewById(R.id.button2);
        bt2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(Tool_barActivity.this,MainActivity.class);
                startActivity(intent);
                //系统自带动画样式左边进右边出
                //overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
                //overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
                overridePendingTransition(R.anim.pop_enter,R.anim.pop_exit);
            }
        });

        an2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (animation!=null){
                if (animation.isRunning()){
                    animation.stop();
                }}
            }
        });

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
//        toolbar.setNavigationIcon(R.mipmap.ic_launcher);
//        toolbar.setLogo(R.mipmap.qqq);
//        toolbar.setTitle("TOOBAR");
//        toolbar.setSubtitle("使用");
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {   //创建菜单
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_tool_bar, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {   //
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            //补间动画 实例
            Animation animation= AnimationUtils.loadAnimation(getBaseContext(),R.anim.anim1);
            an1.startAnimation(animation);
        }else if (id == R.id.action_settings1) {
            //帧动画
            an2.setBackgroundResource(R.drawable.anim2);
            animation=(AnimationDrawable)an2.getBackground();
            animation.start();

        }else if (id == R.id.action_settings2) {
     //属性动画
            ObjectAnimator oja=ObjectAnimator.ofFloat(an3,"rotation",0,360);
            oja.setDuration(3000);
            oja.setRepeatCount(1);
            //设置插补器
            oja.setInterpolator(new BounceInterpolator());
            oja.start();
        }else if (id == R.id.action_settings3) {
            ObjectAnimator oja=ObjectAnimator.ofFloat(an4,"alpha",1,0);
            oja.setDuration(4000);
            oja.setRepeatCount(1);
            oja.setRepeatMode(ObjectAnimator.REVERSE);
            oja.setInterpolator(new LinearInterpolator());
            oja.start();

        }

        return super.onOptionsItemSelected(item);

    }

    @Override
    protected boolean onPrepareOptionsPanel(View view, Menu menu) {
        if (menu != null) {
            if (menu.getClass() == MenuBuilder.class) {
                try {
                    Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
                    m.setAccessible(true);
                    m.invoke(menu, true);
                } catch (Exception e) {
                    System.out.print(getClass().getSimpleName() + "onMenuOpened...unable to set icons for overflow menu" + e);
                }
            }
        }
        return super.onPrepareOptionsPanel(view, menu);
    };
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.jreduch728.Tool_barActivity"
    tools:showIn="@layout/activity_tool_bar">

    <TextView
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:id="@+id/an1"
        android:text="动画效果1"
        android:textSize="30sp"
        android:textColor="#111111"
        android:gravity="center"
        android:background="#131aa3"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dp"
        />
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/an1"
        android:background="@mipmap/qqq"
        android:id="@+id/an2"
        />
    <TextView
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:id="@+id/an3"
        android:text="动画效果2"
        android:textSize="30sp"
        android:textColor="#111111"
        android:gravity="center"
        android:background="#131aa3"
        android:layout_below="@+id/an1"
        android:layout_alignStart="@+id/an1" />
    <TextView
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:id="@+id/an4"
        android:text="动画效果3"
        android:textSize="30sp"
        android:textColor="#111111"
        android:gravity="center"
        android:background="#131aa3"
        android:layout_below="@+id/an3"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="文字颜色"
        android:id="@+id/button"
        android:textSize="20dp"
        android:textColor="@color/bt_text_color"
        android:layout_below="@+id/an4"
        android:layout_alignStart="@+id/an4" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button"
        android:background="@drawable/img_bg"
        android:clickable="true"
        android:id="@+id/an5"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:clickable="true"
        android:layout_alignTop="@+id/an5"
        android:layout_alignStart="@+id/button">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/img_bg_setting"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="个人设置"
            android:gravity="center"
            android:textSize="30dp"
            android:textColor="@color/text_color"
            />
    </LinearLayout>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转画面"
        android:textSize="20dp"
        android:id="@+id/button2"
        android:layout_below="@+id/an5"
        android:layout_alignParentStart="true" />
</RelativeLayout>

2帧动画+布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#a6a0a0"
    tools:context="com.example.jreduch728.Text1Activity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:gravity="center"
        android:background="#9f9696"
        android:layout_marginTop="5dp"
        android:text="请登录"
        android:textSize="40dp"
        android:clickable="true"
        android:textColor="@color/bt_text_color"
        android:id="@+id/tx1"
        />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_below="@+id/tx1"
        >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:clickable="true"
        android:id="@+id/ll1"
        android:layout_marginLeft="10dp"
        android:layout_weight="1"
        android:layout_marginTop="20dp"
      >
        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/lx1"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="信息平台"
            android:gravity="center"
            android:layout_marginLeft="30dp"
            android:textSize="30dp"
            android:textColor="@color/bt_text_color"
            />

    </LinearLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#5b5858"
            ></View>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:clickable="true"
        android:id="@+id/l2"
        android:layout_marginLeft="10dp"
        android:layout_weight="1"
        >
        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/lx2"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="校园活动"
            android:layout_marginLeft="30dp"
            android:gravity="center"
            android:textSize="30dp"
            android:textColor="@color/bt_text_color"
            />
    </LinearLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#5b5858"
            ></View>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:clickable="true"
        android:layout_marginLeft="10dp"
        android:id="@+id/l3"
        android:layout_weight="1"
        >
        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/lx3"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="思想引领"
            android:gravity="center"
            android:layout_marginLeft="30dp"
            android:textSize="30dp"
            android:textColor="@color/bt_text_color"
            />
    </LinearLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#5b5858"
            ></View>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:clickable="true"
        android:id="@+id/l4"
        android:layout_marginLeft="10dp"
        android:layout_weight="1"
        >
        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/lx4"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="就业招聘"
            android:gravity="center"
            android:layout_marginLeft="30dp"
            android:textSize="30dp"
            android:textColor="@color/bt_text_color"
            />
    </LinearLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#5b5858"
            ></View>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:orientation="horizontal"
        android:clickable="true"
        android:id="@+id/l5"
        android:layout_weight="1"
        >
        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/lx5"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_marginLeft="30dp"
            android:layout_height="wrap_content"
            android:text="考研出国"
            android:gravity="center"
            android:textSize="30dp"
            android:textColor="@color/bt_text_color"
            />
    </LinearLayout>
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="#5b5858"
            ></View>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:clickable="true"
        android:layout_marginLeft="10dp"
        android:id="@+id/l6"
        android:layout_weight="1"
        android:layout_marginBottom="80dp"
        >
        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/lx6"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="便利工具"
            android:layout_marginLeft="30dp"
            android:gravity="center"
            android:textSize="30dp"
            android:textColor="@color/bt_text_color"
            />
    </LinearLayout>
    </LinearLayout>
</RelativeLayout>

作者:冲天之峰  20160728

时间: 2024-10-10 07:43:39

Android动画效果——1.帧动画2.补间动画3.跳转画面(三)的相关文章

Android动画效果之Tween Animation(补间动画)(一)

前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation(补间动画). Tween Animation(补间动画): Tween动画,通过对View的内容进行一系列的图形变换 (包括平移.缩放.旋转.改变透明度)来实现动画效果.动画效果的定义可以采用XML来做也可以采用编码来做. 动画类型 XML配置方式 Java代码实现方式 渐变透明度动画效果 <al

Android动画效果之初识Property Animation(属性动画)(三)

前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Android动画效果之Frame Animation(逐帧动画)(二),其实总结前两个的根本目的就是为了学习今天的主角Property Animation(属性动画).其实在Android最早期只提供了前两种动画方式,在Android 3.0才引入了属性动画,谷歌为何要引入属性动画呢?今天我们来总结学习一

android 补间动画

android开发过程中,为了更好的展示应用程序,应用程序添加动画,能够很好地实现这个功能.如果动画中的图像变化有一定的规律,可以采用自动生成图像的方式来生成动画,例如图像的移动.旋转.缩放等.自动生成中间图像的动画,补间动画,只需指定第一帧和最后一帧. 补间动画的优点是节省硬盘空间,缺点是,无法生成复杂的动画.本文主要介绍经常用到的四种补间动画:移动.缩放.旋转.透明度. 1.移动补间动画 移动是比较常见的动画效果.通过xml文件或者java代码能够实现补间动画的移动效果.在res/anim,

实现逐帧动画和补间动画两种动画效果

1.逐帧动画(Frame Animation)通常在Android项目的res/drawable/目录下面定义逐帧动画的XML模板文件.编码的时候,需要在动画模板文件的<animation-list>标签中依次放入需要播放的图片,并设置好播放的间隔时间. <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"

Android基础笔记(十)- 帧动画、补间动画详解、对话框

帧动画 补间动画Tween Animation 对话框以及面试中的注意点 帧动画 帧动画很简单,我们首先看一下Google官方解释This is a traditional animation in the sense that it is created with a sequence of different images. 意思表达的很明了,一个传统的动画是由一组不同的图片组成的.帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果. 创建一帧动画分为一下几步(支持4

Android动画--帧动画和补间动画

帧动画 首先我们定义在drawable文件夹下定义一个xml文件 里面包含我们要播放的动画的图片,以及每一帧动画的播放的时长 <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mi

android 动画(1) 补间动画

android动画: 3.0以前,android支持两种动画模式,tween animation,frame animation, 3.0中又引入了一个新的动画系统:property animation, 这三种动画模式在SDK中被称为 property animation,        属性动画: view animation,   补间动画:  给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变. (Tween animation) drawable animatio

Android开发之Tween(补间动画)完全解析(一)

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51912104 相信不管做了多长时间开发的人都用过Tween动画,从刚开始工作到现在我也是用了N次Tween动画,但是每一次使用总感觉掌握的不够全面,所以花了点时间详细的总结了下Tween动画,其实在android中熟练掌握动画,能够帮助我们实现一些非常酷炫的效果从而使我们的app在交互或者用户体验上有一个更好的体验,鉴于此详细的学习动画还是很有必要的,相信通过本篇的学习大家会对T

Android补间动画属性

Android动画分为帧动画和补间动画. 补间动画的效果: alpha-------渐变透明度动画效果 scale--------渐变尺寸伸缩动画效果 translate---画面转换位置移动动画效果 rotate------画面转移旋转动画效果 具体属性: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/r