当前位置:首页 » 安卓系统 » android收缩动画

android收缩动画

发布时间: 2022-05-11 08:08:36

‘壹’ android 4.x 系统里的几个动画缩放时长有什么不同的影响

关闭自然是对系统资源占用最低的,这些动画主要指的是程序打开、关闭、缩小或页面转跳时的动画。你关掉动画的话,操作就会显得生硬。正常的话是一倍速,OK的了。

‘贰’ 如何实现Android收缩动画间断实现

参考下面代码:
<alpha
repeatMode=reverse?
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:ration="500"
android:repeatCount="infinite"
android:startOffset="500"
/>

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

Android包含三种动画:

ViewAnimation、 Drawable Animation、Property Animation。

ViewAnimation(Tween Animation补间动画):


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

‘肆’ android里如何实现点击一个按钮然后对控件进行展开和收缩

加监听 西安市alertdialog或popupwindow可加动画效果

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

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

‘陆’ 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);

}

}

‘柒’ Android 按钮按下后出现一个动画效果,从右向左拉伸,按钮背景和形状变化

用button的大小用lp.width=width;lp.height=height;btn1.setLayoutParams(lp);背景图片就用setbackgroud(),照你的问题描述,只要设置button的width,背景图用9-patch就行了

‘捌’ android 的动画效果怎么做

1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画;
2. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画。
动画类型
下面先来看看Android提供的动画类型。Android的animation由四种类型组成
在XML文件中:
alpha 渐变透明度动画效果
scale 渐变尺寸伸缩动画效果
translate 画面转换位置移动动画效果
rotate 画面转移旋转动画效果
在Java 源码中定义了相应的类,可以使用这些类的方法来获取和操作相应的属性:
AlphaAnimation渐变透明度动画效果
ScaleAnimation渐变尺寸伸缩动画效果
TranslateAnimation画面转换位置移动动画效果
RotateAnimation画面转移旋转动画效果

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

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 中点击方法可以进入到源码中。

‘拾’ android中的动画有哪几类,它们的特点和区别是什么

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

热点内容
base64加密的图片 发布:2025-05-16 04:35:46 浏览:355
数据结构c语言版清华大学出版社 发布:2025-05-16 04:30:44 浏览:273
c语言取小数点 发布:2025-05-16 04:22:26 浏览:379
公司权力配置有哪些问题 发布:2025-05-16 04:21:43 浏览:924
tcl电视怎样删了缓存 发布:2025-05-16 04:16:56 浏览:211
收费数据库 发布:2025-05-16 04:06:43 浏览:347
编译程序时跳转到另一个文件 发布:2025-05-16 04:03:42 浏览:250
清除exe用户名密码缓存 发布:2025-05-16 04:02:04 浏览:608
mu2需要什么配置 发布:2025-05-16 03:59:05 浏览:406
怎么设置电脑开机密码和屏幕锁 发布:2025-05-16 03:07:05 浏览:56