当前位置:首页 » 安卓系统 » android放大动画

android放大动画

发布时间: 2022-08-10 01:13:18

A. Android中的几种动画

帧动画:指通过指定每一帧的图片和播放时间,有序的进行播放而形成动画效果,比如想听的律动条。

补间动画:指通过指定View的初始状态、变化时间、方式,通过一系列的算法去进行图形变换,从而形成动画效果,主要有Alpha、Scale、Translate、Rotate四种效果。注意:只是在视图层实现了动画效果,并没有真正改变View的属性,比如滑动列表,改变标题栏的透明度。

属性动画:在Android3.0的时候才支持,通过不断的改变View的属性,不断的重绘而形成动画效果。相比于视图动画,View的属性是真正改变了。比如view的旋转,放大,缩小。

B. Android 中的动画有哪几类,它们的特点和区别是什么

Android包含三种动画:

ViewAnimation、 Drawable Animation、Property Animation。

ViewAnimation(Tween Animation补间动画):


动画的对象除了传统的View对象,还可以是Object对象,动画之后,Object对象的属性值被实实在在的改变了。Property animation能够通过改变View对象的实际属性来实现View动画。任何时候View属性的改变,View能自动调用invalidate()来刷新。

C. 安卓手机设置里有动画缩放选项改成x0.5感觉快多了。要是把动画关了会怎样

全部关闭后手机切换速度变快,但显得比较僵硬。

D. 安卓手机设置里有动画缩放选项,默认是x1,觉得不流畅,改成x0.5感觉快多了。要是把动画关了会怎样

前三个动画是调节每个应用和桌面滑动的过渡动画如果改成0 你会发现反应速度快了 但没动画了 强制gpu 是运行2d的东西时 不用cpu而是用gpu

E. android 属性动画和tween动画有什么区别

android支持两种动画模式,tween
animation,frame
animation
View
Animation(Tween
Animation):补间动画,给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变。
View
animation只能应用于View对象,而且只支持一部分属性,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化.
另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影补间动画和帧动画。
补间动画和Frame动画的定义:
所谓补间动画,是指通过指定View的初末状态和变化时间、方式,对View的内容完成一系列的图形变换来实现动画效果。主要包括四种效果:Alpha、Scale、Translate和Rotate。
帧动画就是Frame动画,即指定每一帧的内容和停留时间,然后播放动画。

F. 请问Android手机更改窗口动画缩放,选择:0.5X;过渡动缩放,选择:0.5x;动画程序时长调

前三个动画是调节每个应用和桌面滑动的过渡动画如果改成0 你会发现反应速度快了 但没动画了 强制gpu 是运行2d的东西时 不用cpu而是用gpu

G. Android 中的动画有哪几类,它们的特点和区别是什么

1.View Animation(Tween Animation):补间动画,给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变。
View animation只能应用于View对象,而且只支持一部分属性,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化.

2.Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影补间动画和帧动画。
补间动画和Frame动画的定义:
所谓补间动画,是指通过指定View的初末状态和变化时间、方式,对View的内容完成一系列的图形变换来实现动画效果。主要包括四种效果:Alpha、Scale、Translate和Rotate。
帧动画就是Frame动画,即指定每一帧的内容和停留时间,然后播放动画。。

3.属性动画
只是一个动画效果,组件其实还在原来的位置上,xy没有改变
###位移:
第一个参数target指定要显示动画的组件
第二个参数propertyName指定要改变组件的哪个属性
第三个参数values是可变参数,就是赋予属性的新的值
传入0,代表x起始坐标:当前x + 0
传入100,代表x终点坐标:当前x + 100
//具有get、set方法的成员变量就称为属性
ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "translationX", 0, 100) ;

4.四种基本的动画 ,透明/伸缩/移动/旋转。

(1)XML中

alpha 渐变透明度动画效果

scale 渐变尺寸伸缩动画效果
translate画面转换位置移动动画效果
rotate画面转移旋转动画效果
(2) JavaCode中

AlphaAnimation渐变透明度动画效果
ScaleAnimation渐变尺寸伸缩动画效果
TranslateAnimation画面转换位置移动动画效果
RotateAnimation画面转移旋转动画效果
(3)Android动画模式
Animation主要有两种动画模式:
一种是tweened animation(渐变动画)

一种是frame by frame(画面转换动画)

Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;
Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

H. 安卓手机关于窗口动画缩放,过渡动画缩放,动画程序时长对应的源文件和代码是什么啊

Android Activity(窗口)调用 overridePendingTransition(R.anim.left_out, R.anim.left_in);可以实现过渡动画,其中R.anim.left_out是当前 Activity 退出的动画,R.anim.left_in是新打开 Activity进入的动画,至于实现缩放,只需要修改R.anim.left_out, R.anim.left_in对应的动画实现方式,IDE 中点击方法可以进入到源码中。

I. android 不用XML,怎样在代码里用animation同时实现图片的缩放和移动。

1.在Java Code定义动画

AlphaAnimation

渐变透明度动画效果

ScaleAnimation

渐变尺寸伸缩动画效果

TranslateAnimation

画面转换位置移动动画效果

RotateAnimation

画面转移旋转动画效果

//定义变量

private Animation myAnimation_Alpha;

private Animation myAnimation_Scale;

private Animation myAnimation_Translate;

private Animation myAnimation_Rotate;

myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);

//第一个参数fromAlpha为 动画开始时候透明度

//第二个参数toAlpha为 动画结束时候透明度

myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

//第一个参数fromX为动画起始时 X坐标上的伸缩尺寸

//第二个参数toX为动画结束时 X坐标上的伸缩尺寸

//第三个参数fromY为动画起始时Y坐标上的伸缩尺寸

//第四个参数toY为动画结束时Y坐标上的伸缩尺寸

//第五个参数pivotXType为动画在X轴相对于物件位置类型

//第六个参数pivotXValue为动画相对于物件的X坐标的开始位置

//第七个参数pivotXType为动画在Y轴相对于物件位置类型

//第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置

myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);

//第一个参数fromXDelta为动画起始时 X坐标上的移动位置

//第二个参数toXDelta为动画结束时 X坐标上的移动位置

//第三个参数fromYDelta为动画起始时Y坐标上的移动位置

//第四个参数toYDelta为动画结束时Y坐标上的移动位置

myAnimation_Rotate=new RotateAnimation(0.0f,350.0f,Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIV E_TO_SELF, 0.5f);

//第一个参数fromDegrees为动画起始时的旋转角度

//第二个参数toDegrees为动画旋转到的角度

//第三个参数pivotXType为动画在X轴相对于物件位置类型

//第四个参数pivotXValue为动画相对于物件的X坐标的开始位

//第五个参数pivotXType为动画在Y轴相对于物件位置类型

//第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置

2.3自定义动画

除了以上4类动画外,在代码中继承android.view.animation.Animation类来实现自定义效果。通过重写Animation的applyTransformation(float interpolatedTime, Transformation t)函数来实现自定义动画效果。

在绘制动画的过程中会反复的调用applyTransformation函数,每次调用参数interpolatedTime值都会变化,该参数从0渐 变为1,当该参数为1时表明动画结束。通过参数Transformation 来获取变换的矩阵(matrix),通过改变矩阵就可以实现各种复杂的效果。

自定义图片旋转效果动画代码。

class ViewAnimation extends Animation

{

int mCenterX;

int mCenterY;

Camera camera = new Camera();

public ViewAnimation()

{

}

@Override

public void initialize(int width, int height, int parentWidth,

int parentHeight)

{

super.initialize(width, height, parentWidth, parentHeight);

mCenterX = width/2;

mCenterY = height/2;

setDuration(2500);

setFillAfter(true);

// setRepeatCount(100);

setInterpolator(new LinearInterpolator());

}

@Override

protected void applyTransformation(float interpolatedTime,

Transformation t)

{

final Matrix matrix = t.getMatrix();

camera.save();

camera.translate(0.0f, 0.0f, (1300 - 1300.0f * interpolatedTime));

camera.rotateY(360 * interpolatedTime);

camera.getMatrix(matrix);

matrix.preTranslate(-mCenterX, -mCenterY);

matrix.postTranslate(mCenterX, mCenterY);

camera.restore();

}

}

camera.translate(0.0f, 0.0f, (1300 - 1300.0f * interpolatedTime))在第一次调用的时候interpolatedTime值为0,相当于把ImageView在Z轴后移1300像素, 然后逐步的往前移动到0,同时camera.rotateY(360 * interpolatedTime)函数又把ImageView沿Y轴翻转360度

2.4动画实现

在代码的一个activity中,将需要动画的控件与已定义的动画关联,开启动画

private Animation mAnimationXXX = null;//生明动画

ImageView mAnimImageX = null;//生明 ImageView控件(或者其它需要有动画的控件)

mAnimImageX = (ImageView) this.findViewById(R.id.anim_imageX);//取得图片资源

mAnimImageX.startAnimation(mAnimationXXX);//基于xml文件,开启动画

mAnimImageX.startAnimation(new ViewAnimation());//基于自定义控件,开启动画。

2.5图片旋转Demo

public class AnimationDemo extends Activity {

/** Called when the activity is first created. */

ImageView mAnimImage;

private Animation mAnimationAlpha = null;

private Animation mAnimationScale = null;

private Animation mAnimationTranslate = null;

private Animation mAnimationRotate = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mAnimImage = (ImageView) this.findViewById(R.id.anim_image1);

mAnimationAlpha = AnimationUtils.loadAnimation(this,R.anim.alpha_animation);

mAnimationScale = AnimationUtils.loadAnimation(this,R.anim.scale_animation);

mAnimationTranslate = AnimationUtils.loadAnimation(this,R.anim.translate_animation);

mAnimationRotate = AnimationUtils.loadAnimation(this,R.anim.rotate_animation);

}

public boolean onKeyUp(int keyCode, KeyEvent event)

{

switch ( keyCode )

{

case KeyEvent.KEYCODE_1:

mAnimImage.startAnimation(mAnimationAlpha);

break;

case KeyEvent.KEYCODE_2:

mAnimImage.startAnimation(mAnimationScale);

break;

case KeyEvent.KEYCODE_3:

mAnimImage.startAnimation(mAnimationTranslate);

break;

case KeyEvent.KEYCODE_4:

mAnimImage.startAnimation( mAnimationRotate);

break;

case KeyEvent.KEYCODE_5:

mAnimImage.startAnimation(new ViewAnimation());

break;

}

return true;

}

public boolean onKeyDown(int keyCode, KeyEvent event)

{

if ( keyCode == KeyEvent.KEYCODE_BACK)

{

this.finish();

return true;

}

return super.onKeyDown(keyCode, event);

}

}

3 Frame动画

Frame 动画是顺序播放事先做好的图片。可以在XML Resource定义,也可以使AnimationDrawable中的API定义。

3.1Frame动画实现

定义XML文件

<?xml version="1.0" encoding="utf-8"?>

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"

android:oneshot="false">

<item android:drawable="@drawable/a1" android:ration="500" />

<item android:drawable="@drawable/a2" android:ration="500" />

<item android:drawable="@drawable/a3" android:ration="500" />

<item android:drawable="@drawable/a4" android:ration="500" />

<item android:drawable="@drawable/a5" android:ration="500" />

<item android:drawable="@drawable/a6" android:ration="500" />

<item android:drawable="@drawable/a7" android:ration="500" />

<item android:drawable="@drawable/a8" android:ration="500" />

<item android:drawable="@drawable/a9" android:ration="500" />

<item android:drawable="@drawable/a10" android:ration="500" />

<item android:drawable="@drawable/a11" android:ration="500" />

<item android:drawable="@drawable/a12" android:ration="500" />

<item android:drawable="@drawable/a13" android:ration="500" />

<item android:drawable="@drawable/a14" android:ration="500" />

<item android:drawable="@drawable/a15" android:ration="500" />

</animation-list>

定义动画类

public class GameView extends View

{

private AnimationDrawable frameAnimation = null;

Context mContext = null;

public GameView(Context context)

{

super(context);

mContext = context;

ImageView img = new ImageView(mContext);

img.setBackgroundResource(R.anim.frameanimation);

frameAnimation = (AnimationDrawable) img.getBackground();

frameAnimation.setOneShot( false );

this.setBackgroundDrawable(frameAnimation);

}

public void onDraw(Canvas canvas)

{

super.onDraw(canvas);

}

public boolean onKeyUp(int keyCode, KeyEvent event)

{

switch ( keyCode )

{

case KeyEvent.KEYCODE_DPAD_UP:

frameAnimation.start();

break;

}

return true;

}

}

开启动画

public class Activity01 extends Activity

{

private GameView mGameView;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

mGameView = new GameView(this);

setContentView(mGameView);

}

public boolean onKeyUp(int keyCode, KeyEvent event)

{

if ( mGameView == null )

{

return false;

}

mGameView.onKeyUp(keyCode,event);

return true;

}

public boolean onKeyDown(int keyCode, KeyEvent event)

{

if ( mGameView == null )

{

return false;

}

if ( keyCode == KeyEvent.KEYCODE_BACK)

{

this.finish();

return true;

}

return super.onKeyDown(keyCode, event);

}

}

热点内容
通过域名访问内网 发布:2025-01-18 16:01:39 浏览:275
md5加密后的密码是什么意思 发布:2025-01-18 15:50:16 浏览:193
如何qq空间访问权限 发布:2025-01-18 15:49:30 浏览:532
matlab遗传算法约束 发布:2025-01-18 15:31:33 浏览:910
果冻java 发布:2025-01-18 15:25:59 浏览:696
电脑与时间服务器同步间隔 发布:2025-01-18 15:21:28 浏览:55
苹果手机apple登录密码在手机哪里 发布:2025-01-18 15:13:43 浏览:381
吃鸡去哪里下手游安卓 发布:2025-01-18 15:10:59 浏览:669
东方财富dk指标源码 发布:2025-01-18 14:45:53 浏览:436
陌陌登陆密码是什么 发布:2025-01-18 14:36:54 浏览:848