十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文实例讲述了Android控件Tween动画(补间动画)实现方法。分享给大家供大家参考,具体如下:

成都创新互联公司主要从事成都网站设计、成都做网站、外贸网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务江夏,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
Android动画中的Tween动画:是把控件对象不断的进行图像变化来产生旋转、平移、放缩和渐变等动画效果。
/**
* 控件Tween动画
*
* @description:
* @author ldm
* @date 2016-6-22 下午5:26:24
*/
public class TweenActivity extends Activity {
private SeekBar seekBarX;// 拖动条控件
private SeekBar seekBarY;
private SeekBar scaleSeekBarX;
private SeekBar scaleSeekBarY;
private SeekBar rotationSeekBarX;
private SeekBar rotationSeekBarY;
private SeekBar rotationSeekBarZ;
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tween);
initViews();
initEvents();
}
/**
*
* @description:初始化控件
* @author ldm
* @date 2016-6-22 下午5:26:26
*/
private void initViews() {
button = (Button) findViewById(R.id.button);
seekBarX = (SeekBar) findViewById(R.id.translationX);
seekBarX.setMax(400);
seekBarY = (SeekBar) findViewById(R.id.translationY);
seekBarY.setMax(800);
scaleSeekBarX = (SeekBar) findViewById(R.id.scaleX);
scaleSeekBarX.setMax(50);
scaleSeekBarX.setProgress(10);
scaleSeekBarY = (SeekBar) findViewById(R.id.scaleY);
scaleSeekBarY.setMax(50);
scaleSeekBarY.setProgress(10);
rotationSeekBarX = (SeekBar) findViewById(R.id.rotationX);
rotationSeekBarX.setMax(360);
rotationSeekBarY = (SeekBar) findViewById(R.id.rotationY);
rotationSeekBarY.setMax(360);
rotationSeekBarZ = (SeekBar) findViewById(R.id.rotationZ);
rotationSeekBarZ.setMax(360);
}
/**
*
* @description:控件设置监听事件
* @author ldm
* @date 2016-6-22 下午5:26:26
*/
private void initEvents() {
// 按钮X方向平移动画
seekBarX.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// X方向平移
button.setTranslationX((float) progress);
}
});
// 按钮Y方向平移动画
seekBarY.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// Y方向平移
button.setTranslationY((float) progress);
}
});
// 按钮X方向缩放动画
scaleSeekBarX
.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
// X方向缩放
button.setScaleX((float) progress / 10f);
}
});
// 按钮Y方向缩放动画
scaleSeekBarY
.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
// Y方向缩放
button.setScaleY((float) progress / 10f);
}
});
// 按钮X方向旋转动画
rotationSeekBarX
.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
// X方向旋转
button.setRotationX((float) progress);
}
});
// 按钮Y方向旋转动画
rotationSeekBarY
.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
// Y方向旋转
button.setRotationY((float) progress);
}
});
// 按钮Z方向旋转动画
rotationSeekBarZ
.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
// 设置旋转
button.setRotation((float) progress);
}
});
}
}
布局文件R.layout.activity_tween
<?xml version="1.0" encoding="utf-8"?>
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发动画技巧汇总》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android资源操作技巧汇总》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。