【Android开发小记--3】按钮视图动画几种效果
来源:互联网 发布:微团购软件哪个好 编辑:程序博客网 时间:2024/06/05 12:05
下面是几种按钮动画的效果实现,分别有代码实现和XML中编辑。
对动画进行监听,在动画结束时,出现一个Toast。
对动画的效果实现自定义,实现一个button左右摇摆的效果。
首先是效果图:
一、Button透明度变化
//=============================================================// 1------透明动画效果//============================================================= findViewById(R.id.btnAlphaMe).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //----1---代码编辑------------------------// AlphaAnimation anim_alpha = new AlphaAnimation(0,1);// anim_alpha.setDuration(1000);//动画时间// v.startAnimation(anim_alpha);//启动动画 //----1----XML编辑--------------------------- v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.anim_alpha)); } });
二、Button旋转效果
//==========================================================// 2------旋转动画效果//=========================================================== findViewById(R.id.btnRotateMe).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //----2---代码编辑------------------------ //绕默认坐标旋转(控件的左上角) RotateAnimation ra = new RotateAnimation(0,360); //还可指明绕着某一点旋转,RotateAnimation(0,360,x坐标,y坐标)// RotateAnimation ra = new RotateAnimation(0,360,200,500); //使用相对坐标// RotateAnimation ra = new RotateAnimation(0,360, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); ra.setDuration(1000); v.startAnimation(ra); //----2----XML编辑---------------------------// v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.anim_rotate)); } });
三、Button移动效果
//==========================================================// 3------移动动画效果//=========================================================== findViewById(R.id.btnTranslateMe).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //----3---代码编辑------------------------// TranslateAnimation ta = new TranslateAnimation(0,200,0,200);//这里的200是相对位置// ta.setDuration(1000);// v.startAnimation(ta); //----3----XML编辑--------------------------- v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.anim_translate)); } });
四、Button缩放效果
//==========================================================// 4------缩放动画效果//=========================================================== findViewById(R.id.btnScaleMe).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //----4---代码编辑------------------------ //缩放中心为控件左上角// ScaleAnimation sa = new ScaleAnimation(0,1,0,1); //从某一点开始缩放// ScaleAnimation sa = new ScaleAnimation(0,1,0,1,200,500); //相对于自身的百分比 ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); sa.setDuration(1000); v.startAnimation(sa); //----4----XML编辑---------------------------// v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.anim_scale)); } });
五、Button混合动画效果
//==========================================================// 5------动画效果混合//=========================================================== findViewById(R.id.btnAnimateMe).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //----5---代码编辑------------------------ AnimationSet as = new AnimationSet(true);//是否共用动画补间(匀速、加速、减速) as.setDuration(1000); AlphaAnimation aa = new AlphaAnimation(0,1); aa.setDuration(1000); as.addAnimation(aa); TranslateAnimation ta = new TranslateAnimation(200,0,200,0); ta.setDuration(1000); as.addAnimation(ta); v.startAnimation(as); //----5----XML编辑---------------------------// v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.anim)); } });
六、Button动画监听
对动画进行监听,在动画结束时,出现一个Toast。
findViewById(R.id.btnAnimateMe).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {//==========================================================// 6------动画效果监听//=========================================================== Animation a = AnimationUtils.loadAnimation(MainActivity.this,R.anim.anim); a.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { Toast.makeText(MainActivity.this, "Animation end", Toast.LENGTH_SHORT).show(); } @Override public void onAnimationRepeat(Animation animation) { } }); v.startAnimation(a); } });
七、自定义Button动画
对动画的效果实现自定义,实现一个button左右摇摆的效果。
//==========================================================// 7------自定义动画效果//=========================================================== findViewById(R.id.btnCustomAnim).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CustomAnim ca = new CustomAnim(); ca.setDuration(1000); v.startAnimation(ca); } });
自定义的动画 CustomAnim.java
public class CustomAnim extends Animation { /*获取目标对象宽高*/ @Override public void initialize(int width, int height, int parentWidth, int parentHeight) { super.initialize(width, height, parentWidth, parentHeight); } @Override protected void applyTransformation(float interpolatedTime, Transformation t) { //(补间时间,变化对象) //-----1------透明度变化效果// t.setAlpha(interpolatedTime); //----2-------这里是没有动画过渡的,是瞬间移动// t.getMatrix().setTranslate(200,200); //-----3------这里是一个过程// t.getMatrix().setTranslate(200*interpolatedTime,200*interpolatedTime); //------4-----左右摇摆效果 t.getMatrix().setTranslate((float)(Math.sin(interpolatedTime*20)*50),0); super.applyTransformation(interpolatedTime, t); }}
具体代码可点击
0 0
- 【Android开发小记--3】按钮视图动画几种效果
- android studio开发<二> 动态按钮动画效果
- [Android基础知识]视图动画第二篇,Camera 3D效果
- android开发滑动srcollerview右下角按钮根据手势显示和隐藏动画简单动画效果
- iOS开发常用的几种动画效果
- iOS开发-autolayout动画效果实现的几种方法
- 【Android开发小记--6】动画--属性动画以及Fragment切换动画(3D)
- Android仿Path按钮动画效果 PathButton
- Android仿Path按钮动画效果 PathButton
- android超炫button按钮动画效果
- animation 几种动画效果
- CoolUIViewAnimations 几种动画效果
- 【Android开发那点破事】定制返回按钮的动画效果。
- android开发之动画效果
- android小记之Animation4种动画效果(贴上了GIF图)
- 【Android开发小记--4】动画--线性布局动画
- iOS视图动画效果
- 视图动画效果
- hdu 1403
- 向每一个错误致敬——Android HotFix
- 指针定义字符串和数组定义字符串的区别
- 小明系列故事——买年货(三重背包)
- 2015——程序人生进阶
- 【Android开发小记--3】按钮视图动画几种效果
- UESTC--1264--人民币的构造(数学规律)
- C语言 指针与数组,结构体
- 装箱问题(01背包)
- 自定义View实现微信主页渐变效果
- 开启新线程实现电子广告牌
- Android Studio中使用JNI调用OpenCV本地代码Canny 边缘检测
- UESTC--1263--The Desire of Asuna(贪心)
- 在o(1)时间内删除链表中结点