python的json格式输出_python中json格式数据输出实现方式

Animations定义:Animations提供了一系列的动画效果,这些效果可以应用在绝大多数的控件。

Animations从总体来看分为两大类:

1、Tweened Animations 该类提供了旋转、移动、伸展和淡出的效果

2、Frame-by-FrameAnimations 该类可以创建一个Drawable序列,这些Drawable可以按照指定的时间间歇一个个的显示

Tweened Animations的分类:

1、Alpha:淡入淡出效果

2、Scale:缩放效果

3、Rotate:旋转效果

4、Translate:移动效果

使用Tweened Animations的步骤:

1、创建一个AnimationSet对象

2、根据需要创建相应 的Animation对象

3、根据动画的需要,为Animation对象设置相应的数据

4、将Animation对象添加到AnimationSet对象当中

5、使用控件对象开始执行AnimationSet

例如:为控件绑定Alpha动画的过程

//创建一个AnimationSet对象

AnimationSet animationSet = new AnimationSet(true);

//创建一个AlphaAnimation对象

AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);

//设置动画执行的时间(单位:毫秒)

alphaAnimation.setDuration(1000);

//将AlphaAnimation对象添加到AnimationSet当中

animationSet.addAnimation(alphaAnimation);

//使用ImageView的startAnimation方法开始执行动画

imageView.startAnimation(animationSet);

实现该四种动画代码如下:

public class MainActivity extends Activity {

private ImageView imageView = null;

private Button rotateButton = null;

private Button scaleButton = null;

private Button alphaButton = null;

private Button translateButton = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

imageView = (ImageView) findViewById(R.id.imageViewId);

rotateButton = (Button) findViewById(R.id.rotateButtonId);

rotateButton.setOnClickListener(new RotateButtonListener());

scaleButton = (Button) findViewById(R.id.scaleButtonId);

scaleButton.setOnClickListener(new ScaleButtonListener());

alphaButton = (Button) findViewById(R.id.alphaButtonId);

alphaButton.setOnClickListener(new AlphaButtonListener());

translateButton = (Button) findViewById(R.id.translateButtonId);

translateButton.setOnClickListener(new TranslateButtonListener());

}

private class RotateButtonListener implements OnClickListener {

@Override

public void onClick(View view) {

AnimationSet animationSet = new AnimationSet(true);

RotateAnimation rotateAnimation = new RotateAnimation(0, 360,

Animation.RELATIVE_TO_PARENT, 1f,

Animation.RELATIVE_TO_PARENT, 0f);

rotateAnimation.setDuration(5000);

animationSet.addAnimation(rotateAnimation);

imageView.startAnimation(animationSet);

}

}

private class ScaleButtonListener implements OnClickListener {

@Override

public void onClick(View view) {

AnimationSet animationSet = new AnimationSet(true);

ScaleAnimation scaleAnimation = new ScaleAnimation(1, 0.1f, 1, 0.1f,

Animation.RELATIVE_TO_SELF, 0.5f,

Animation.RELATIVE_TO_SELF, 0.5f);

animationSet.addAnimation(scaleAnimation);

animationSet.setStartOffset(1000);

animationSet.setFillAfter(true);

animationSet.setFillBefore(false);

animationSet.setDuration(2000);

imageView.startAnimation(animationSet);

}

}

private class AlphaButtonListener implements OnClickListener {

@Override

public void onClick(View view) {

AnimationSet animationSet = new AnimationSet(true);

AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);

alphaAnimation.setDuration(1000);

animationSet.addAnimation(alphaAnimation);

imageView.startAnimation(animationSet);

}

}

private class TranslateButtonListener implements OnClickListener {

@Override

public void onClick(View view) {

AnimationSet animationSet = new AnimationSet(true);

TranslateAnimation translateAnimation = new TranslateAnimation(

Animation.RELATIVE_TO_SELF, 0f,

Animation.RELATIVE_TO_SELF, 0.5f,

Animation.RELATIVE_TO_SELF, 0f,

Animation.RELATIVE_TO_SELF, 1.0f);

translateAnimation.setDuration(1000);

animationSet.addAnimation(translateAnimation);

imageView.startAnimation(animationSet);

}

}

}

对于上面使用动画的方法,在Java代码中使用,不利于代码的重复使用,更不利于代码的维护,所以就出现了下面的方法,在xml代码中定义动画。其步骤为:

1、在res文件夹下定义一个anim的文件夹

2、创建xml文件,并加入set标签,该标签如下:

android:interpolator="@android:anim/accelerate_interpolator">

3、再该标签中加入Alpha、Scale、Rotate、Translate标签

4、在代码当中使用AnimationUtils装载xml文件,并生成Animation对象

具体实现如下:

alpha.xml代码:

android:interpolator="@android:anim/accelerate_interpolator">

android:fromAlpha="1.0"

android:toAlpha="0.0"

android:startOffset="500"

android:duration="500" />

rotate.xml代码:

android:interpolator="@android:anim/accelerate_interpolator">

android:toDegrees="360"

android:pivotX="50%"

android:pivotY="50%"

android:duration="5000" />

scale.xml代码:

android:interpolator="@android:anim/accelerate_interpolator">

android:toXScale="0.0"

android:fromYScale="1.0"

android:toYScale="0.0"

android:pivotX="50%"

android:pivotY="50%"

android:duration="2000" />

translate.xml代码:

android:interpolator="@android:anim/accelerate_interpolator">

android:fromXDelta="50%"

android:toXDelta="100%"

android:fromYDelta="0%"

android:toYDelta="100%"

android:duration="2000" />

MainActivity.java代码:

public class MainActivity extends Activity {

private ImageView imageView = null;

private Button rotateButton = null;

private Button scaleButton = null;

private Button alphaButton = null;

private Button translateButton = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

imageView = (ImageView) findViewById(R.id.imageViewId);

rotateButton = (Button) findViewById(R.id.rotateButtonId);

rotateButton.setOnClickListener(new RotateButtonListener());

scaleButton = (Button) findViewById(R.id.scaleButtonId);

scaleButton.setOnClickListener(new ScaleButtonListener());

alphaButton = (Button) findViewById(R.id.alphaButtonId);

alphaButton.setOnClickListener(new AlphaButtonListener());

translateButton = (Button) findViewById(R.id.translateButtonId);

translateButton.setOnClickListener(new TranslateButtonListener());

}

private class RotateButtonListener implements OnClickListener {

@Override

public void onClick(View view) {

Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate);

imageView.startAnimation(animation);

}

}

private class ScaleButtonListener implements OnClickListener {

@Override

public void onClick(View view) {

Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.sacle);

imageView.startAnimation(animation);

}

}

private class AlphaButtonListener implements OnClickListener {

@Override

public void onClick(View view) {

Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha);

imageView.startAnimation(animation);

}

}

private class TranslateButtonListener implements OnClickListener {

@Override

public void onClick(View view) {

Animation animation = (Animation) AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate);

imageView.startAnimation(animation);

}

}

}

原文:http://blog.csdn.net/5iasp/article/details/23338039

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值