Android动画(透明度,平移,旋转,拉伸,动态添加按钮)
来源:互联网 发布:java actionevent 编辑:程序博客网 时间:2024/05/21 06:32
步骤:
透明度变化
状态图:
代码:
//透明度变化 AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);//第一个参数开始的透明度,第二个参数结束的透明度 alphaAnimation.setDuration(3000);//多长时间完成这个动作 imageView1.startAnimation(alphaAnimation);
平移:
状态图:
代码:
//平移 TranslateAnimation animation = new TranslateAnimation(0,imageView1.getMeasuredWidth(), 0, 0); //前两个参数是设置x轴的起止位置,后两个参数设置y轴的起止位置 animation.setDuration(3000); imageView2.startAnimation(animation);
旋转:
状态图:
代码:
//旋转中心是(0,0) RotateAnimation rotateAnimation = new RotateAnimation(0,360); 第一个参数是旋转中心,第二个是旋转角度,旋转中心(0~100%) rotateAnimation.setDuration(3000); imageView3.startAnimation(rotateAnimation);
拉伸:
状态图:
代码:
//拉伸 ScaleAnimation scaleAnimation=new ScaleAnimation(1,0.5f,1,0.5f);//默认从(0,0) scaleAnimation.setDuration(3000); imageView4.startAnimation(scaleAnimation);
源码:
layout
<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button_start_animation" android:text="开始动画" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/animation_imageview5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/b"/> <ImageView android:id="@+id/animation_imageview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/b"/> <ImageView android:id="@+id/animation_imageview2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/b"/> <ImageView android:id="@+id/animation_imageview3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/b"/> <ImageView android:id="@+id/animation_imageview4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/b"/> </LinearLayout></ScrollView>
MyAnimationActivity
package com.example.administrator.mywidgetmode.Animation;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.animation.AlphaAnimation;import android.view.animation.AnimationSet;import android.view.animation.RotateAnimation;import android.view.animation.ScaleAnimation;import android.view.animation.TranslateAnimation;import android.widget.Button;import android.widget.ImageView;import com.example.administrator.mywidgetmode.R;/** * Created by Administrator on 2015/9/19. */public class MyAnimationActivity extends AppCompatActivity { private Button mBtStartAnimation; private ImageView imageView1; private ImageView imageView2; private ImageView imageView3; private ImageView imageView4; private ImageView imageView5; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_animation); imageView1 = (ImageView) findViewById(R.id.animation_imageview1); imageView2 = (ImageView) findViewById(R.id.animation_imageview2); imageView3 = (ImageView) findViewById(R.id.animation_imageview3); imageView4 = (ImageView) findViewById(R.id.animation_imageview4); imageView5 = (ImageView) findViewById(R.id.animation_imageview5); mBtStartAnimation = (Button) findViewById(R.id.button_start_animation); mBtStartAnimation.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //透明度变化 AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f); alphaAnimation.setDuration(3000);//多长时间完成这个动作 imageView1.startAnimation(alphaAnimation); //平移 TranslateAnimation animation = new TranslateAnimation(0,imageView2.getMeasuredWidth(),0,0); animation.setDuration(3000); imageView2.startAnimation(animation); //旋转 RotateAnimation rotateAnimation = new RotateAnimation(0,360); rotateAnimation.setDuration(3000); imageView3.startAnimation(rotateAnimation); //拉伸 ScaleAnimation scaleAnimation=new ScaleAnimation(1,0.5f,1,0.5f);//默认从(0,0) //(0.5f,1,0.5f,1)放大(1,0.5f,1,0.5f)缩小 scaleAnimation.setDuration(3000); imageView4.startAnimation(scaleAnimation); //效果叠加 AnimationSet set=new AnimationSet(false); AlphaAnimation alphaAnimation1 = new AlphaAnimation(0.0f, 1.0f); alphaAnimation1.setDuration(3000);//多长时间完成这个动作 TranslateAnimation animation1 = new TranslateAnimation(0,imageView5.getMeasuredWidth(), 0, 0); animation1.setDuration(3000); RotateAnimation rotateAnimation1 = new RotateAnimation(0,360); rotateAnimation1.setDuration(3000); ScaleAnimation scaleAnimation1=new ScaleAnimation(0.5f,1,0.5f,1);//默认从(0,0) //(0.5f,1,0.5f,1)放大(1,0.5f,1,0.5f)缩小 scaleAnimation1.setDuration(3000); set.addAnimation(alphaAnimation1); set.addAnimation(animation1); set.addAnimation(rotateAnimation1); set.addAnimation(scaleAnimation1); imageView5.startAnimation(set); } }); }}
第二种方法:
1,先在Android列表下,在mode的res下建一个文件夹注意文件类型为anim
2,在project列表下,找到上一步建的文件夹在里面建一个xml文件
3,在里面写透明度,平移等的方法
下面的代码里我只写了旋转跟缩放的
效果:
代码:
xml文件
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" //线性:这里的是一个加速的线性 android:interpolator="@android:anim/accelerate_interpolator" > <rotate android:duration="3000" android:fromDegrees="0" //50%,50%以中心为旋转点 android:pivotX="50%" android:pivotY="50%" //旋转次数5次 android:repeatCount="5" //旋转360度 android:toDegrees="360" ></rotate> <scale //开始时间,3秒以后开始缩放 android:startOffset="3000" android:duration="2000" //从小到大是放大 android:fromXScale="0.5" android:toXScale="1.0" android:fromYScale="0.5" android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%" ></scale></set>
MyAnimationActivity
在点击事件里的用法:
Animation animation2= AnimationUtils.loadAnimation(getApplicationContext(),R.anim.animi); imageView5.startAnimation(animation2);
第三种点击图片发生变化
效果图:
layout
<Button android:id="@+id/button_start_animation" android:text="开始动画" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/animation_imageview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/b" android:onClick="startAnimation"/>
MyAnimationActivity
注意这里的startAnimation要和layout里的
android:onClick=”startAnimation”相同
public void startAnimation(View view){ ObjectAnimator.ofFloat(imageView1,"scaleX",0.0f,1f).setDuration(3000).start(); }
第四种点击图发生变化
1,先在Android列表下,在mode的res下建一个文件夹注意文件类型为animator
2,在project列表下,找到上一步建的文件夹在里面建一个xml文件
效果图:
代码:
XML文件
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="together"> <objectAnimator android:duration="1000" android:propertyName="scaleX" android:valueFrom="1" android:valueTo="0.5" ></objectAnimator> <objectAnimator android:duration="1000" android:propertyName="scaleY" android:valueFrom="1" android:valueTo="0.5" ></objectAnimator></set>
layout
<Button android:id="@+id/button_start_animation" android:text="开始动画" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:id="@+id/animation_imageview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/b" android:onClick="startAnimation"/>
MyAnimationActivity
注意这里的startAnimation要和layout里的
android:onClick=”startAnimation”相同
public void startAnimation(View view){ Animator animator = AnimatorInflater.loadAnimator(getApplicationContext(),R.animator.animator_scale); animator.setTarget(imageView1); animator.start(); }
在代码里动态添加按钮
效果:
代码:
1,先在Android列表下,在mode的res下建一个文件夹注意文件类型为animator
2,在project列表下,找到上一步建的文件夹在里面建一个xml文件
xml代码
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:ordering="together"> <objectAnimator android:duration="1000" android:propertyName="scaleX" android:valueFrom="0.5" android:valueTo="1" ></objectAnimator> <objectAnimator android:duration="1000" android:propertyName="scaleY" android:valueFrom="0.5" android:valueTo="1" ></objectAnimator></set>
layout
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/button_add" android:text="添加按钮" android:layout_width="match_parent" android:layout_height="wrap_content" /> <LinearLayout android:id="@+id/linearLayout" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> </LinearLayout></LinearLayout>
MyButtonActivity
package com.example.administrator.mywidgetmode.MyButton;import android.animation.AnimatorInflater;import android.animation.LayoutTransition;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.LinearLayout;import com.example.administrator.mywidgetmode.MainActivity;import com.example.administrator.mywidgetmode.R;/** * Created by Administrator on 2015/9/19. */public class MyButtonActivity extends AppCompatActivity { private Button mButtonAdd; private LinearLayout mLinearLayout; int count; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button); mButtonAdd= (Button) findViewById(R.id.button_add); mLinearLayout= (LinearLayout) findViewById(R.id.linearLayout); LayoutTransition transition =new LayoutTransition(); transition.getDuration(2000);//时间 //APPEARING添加view的动画 transition.setAnimator(LayoutTransition.APPEARING, AnimatorInflater.loadAnimator(getApplicationContext(),R.animator.animator_scale)); transition.setAnimator(LayoutTransition.CHANGE_APPEARING,transition.getAnimator(LayoutTransition.CHANGE_APPEARING));//CHANGE_APPEARING消失动画 transition.setAnimator(LayoutTransition.DISAPPEARING,transition.getAnimator(LayoutTransition.DISAPPEARING));//DISAPPEARING移除view的动画 transition.setAnimator(LayoutTransition.CHANGE_DISAPPEARING,transition.getAnimator(LayoutTransition.CHANGE_DISAPPEARING)); mLinearLayout.setLayoutTransition(transition);//把动画加到按钮上 mButtonAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { count++; Button btn=new Button(MyButtonActivity.this); ViewGroup.LayoutParams params=new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); btn.setLayoutParams(params); btn.setText("按钮"+count); btn.setScaleX(0f); btn.setScaleY(0f); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mLinearLayout.removeView(v); } }); mLinearLayout.addView(btn); } }); }}
1 0
- Android动画(透明度,平移,旋转,拉伸,动态添加按钮)
- android动画(平移,旋转,缩放,透明度)
- Android 属性动画 实现view翻转 旋转 平移 拉伸 透明度 背景颜色变换
- Android动画基础:平移、缩放、旋转、透明度
- Android动画复习(包括缩放动画、平移动画、旋转动画、透明度动画)
- 【Android开发】动画范例2-旋转、平移、缩放和透明度渐变的补间动画
- Android 通过Animate硬编码实现简单的平移、旋转、缩放及透明度动画过程
- Android 旋转、平移、缩放和透明度渐变的补间动画
- android游戏开发5-10 补间动画 透明度渐变 旋转 缩放 平移
- android自定义动画平移旋转
- Android ActionBar中的按钮添加旋转动画
- 安卓的各种动画(透明度,平移,旋转,缩放)以及侦听
- 旋转平移,缩放,透明度渐变的补间动画
- 旋转、平移、缩放和透明度渐变的补间动画
- Android 补间动画,具体介绍了透明度、平移,旋转,缩放4种动画效果的实现,简单易懂
- android 中四种补间动画(透明,平移,缩放,旋转)
- android动画1-平移和旋转
- android动画基础--旋转移动平移缩放
- 项目实战No10 评论管理
- aop的概念总结
- Django 连接数据库
- iOS开发之查找目录
- [裸KMP][HDU1711][Number Sequence]
- Android动画(透明度,平移,旋转,拉伸,动态添加按钮)
- 评估文本评论情感分析的机器学习和非监督语义倾向性方法(IEEE2012)
- hdu 1370
- Rectangle Area
- 之字打印,从矩阵右上角到左下打印数组(算法)
- UIView
- ios 字符串,字典,数组存储到本地文件
- LeetCode 算法实现:TwoSum
- Windows Socket API函数