[英]Button animations in Android
正如我所想,今天我得到了一个非常有趣的问题。 在我的工作中,我们正在创建约会服务,其中一个主要功能将是屏幕,显示不同女孩(或男孩)的照片,用户按下“热”或“不”按钮。 这两个按钮都显示在屏幕上的照片下方。
我们的分析表明我们应该实现某种“游戏”机制,所以我们想要这样的东西:例如,当用户按下“不”按钮时 - 它开始冻结并被冰覆盖,然后它破裂,然后是下一张照片显示。 这不是缩放或旋转或平移动画......按钮本身,它的内容应该在一小段时间内(可能一两秒钟)发生变化。
这让我很害怕,因为当我考虑在不同的设备上缩放这些按钮时,我可能会在使用 Ninepatch 和手工制作的帧动画时遇到不同的麻烦。
有可能做这样的事情吗? 或者也许有任何解决方法或其他方法。
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/rocket_thrust1" android:duration="200" /> <item android:drawable="@drawable/rocket_thrust2" android:duration="200" /> <item android:drawable="@drawable/rocket_thrust3" android:duration="200" /> </animation-list>
然后
AnimationDrawable rocketAnimation;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
}
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
rocketAnimation.start();
return true;
}
return super.onTouchEvent(event);
}
在 drawable 文件夹中创建图像列表:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/loading"
android:oneshot="false" >
<item android:drawable="@drawable/preloader_01" android:duration="50" />
<item android:drawable="@drawable/preloader_02" android:duration="50" />
<item android:drawable="@drawable/preloader_03" android:duration="50" />
<item android:drawable="@drawable/preloader_04" android:duration="50" />
使用 ImageView img 代替按钮,并在 xml 中将列表设置为背景,然后在代码中使用 AnimationDrawable 开始动画
AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
// Start the animation (looped playback by default).
frameAnimation.start();`
您可以使用 ObjectAnimators 和 ValueAnimators 为 Alpha、位置和按钮的几乎任何属性设置动画。
如果您想要自定义动画,例如冰效果,则必须自己制作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.