十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文实例讲述了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程序设计有所帮助。