码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2016-07-29 15:42:09      阅读:430      评论:0      收藏:0      [点我收藏+]

标签:

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


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

标签:

原文地址:http://blog.csdn.net/zhangyufeng0126/article/details/52058172

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!