Android控件Tween动画(补间动画)实现方法示例
程序员文章站
2023-11-24 08:36:16
本文实例讲述了android控件tween动画(补间动画)实现方法。分享给大家供大家参考,具体如下:
android动画中的tween动画:是把控件对象不断的进行图像变化...
本文实例讲述了android控件tween动画(补间动画)实现方法。分享给大家供大家参考,具体如下:
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"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:splitmotionevents="true" > <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margintop="20dip" android:orientation="horizontal" android:splitmotionevents="true" > <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingleft="5dip" android:paddingright="5dip" android:text="tx" android:textstyle="bold" /> <seekbar android:id="@+id/translationx" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingleft="15dip" android:paddingright="5dip" android:text="ty" android:textstyle="bold" /> <seekbar android:id="@+id/translationy" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal" /> </linearlayout> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margintop="20dip" android:orientation="horizontal" android:splitmotionevents="true" > <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingleft="5dip" android:paddingright="5dip" android:text="sx" android:textstyle="bold" /> <seekbar android:id="@+id/scalex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingleft="15dip" android:paddingright="5dip" android:text="sy" android:textstyle="bold" /> <seekbar android:id="@+id/scaley" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal" /> </linearlayout> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margintop="20dip" android:orientation="horizontal" android:splitmotionevents="true" > <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingleft="5dip" android:paddingright="5dip" android:text="x" android:textstyle="bold" /> <seekbar android:id="@+id/rotationx" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingleft="15dip" android:paddingright="5dip" android:text="y" android:textstyle="bold" /> <seekbar android:id="@+id/rotationy" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal" /> <textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingleft="15dip" android:paddingright="5dip" android:text="z" android:textstyle="bold" /> <seekbar android:id="@+id/rotationz" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal" /> </linearlayout> <button android:id="@+id/rotatingbutton" android:layout_width="200dip" android:layout_height="150dip" android:layout_marginleft="50dip" android:layout_margintop="50dip" android:text="rotating button" /> </linearlayout>
更多关于android相关内容感兴趣的读者可查看本站专题:《android开发动画技巧汇总》、《android开发入门与进阶教程》、《android视图view技巧总结》、《android编程之activity操作技巧总结》、《android文件操作技巧汇总》、《android资源操作技巧汇总》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。
上一篇: 搜狗浏览器默认下载路径在哪里?
推荐阅读
-
Android控件Tween动画(补间动画)实现方法示例
-
Android中四种补间动画的使用示例(附代码下载)
-
tween.js缓动补间动画算法示例
-
Android开发触摸touch事件(补间动画和自定义view使用方法)
-
Android Studio实现补间动画
-
Android ViewAnimation(tween animation补间动画)文档教程_html/css_WEB-ITnose
-
Android ViewAnimation(tween animation补间动画)文档教程_html/css_WEB-ITnose
-
Android 之 Tween补间动画
-
tween.js缓动补间动画算法示例
-
Android中四种补间动画的使用示例(附代码下载)