如何在按下按钮时使用可绘制动画

时间:2019-04-22 11:48:02

标签: android android-animation android-button

我在这里尝试了许多代码,但没有任何效果 而且那里根本没有教程如何使用 按下按钮时可绘制动画。

但是没有任何作用

我尝试过:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/pressed" />
    <item android:state_pressed="false" android:drawable="@drawable/lostpressd" />
</selector>

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/e1" android:duration="50" />
    <item android:drawable="@drawable/e2" android:duration="50" />
    and so on 

,而失物招募则相反。

2 个答案:

答案 0 :(得分:0)

我解决了您的问题:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/image1" android:state_pressed="true" />
    <item android:drawable="@drawable/image2" android:state_pressed="false" />
</selector>

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item
        android:drawable="@drawable/image1"
        android:duration="200" />
    <item
        android:drawable="@drawable/image2"
        android:duration="200" />
    <item
        android:drawable="@drawable/image3"
        android:duration="200" />
</animation-list>

您的活动中:

 final ImageView img = (ImageView) findViewById(R.id.my_img);
    img.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            img.setBackgroundResource(R.drawable.anim);
            AnimationDrawable animationDrawable = (AnimationDrawable) img.getBackground();
            animationDrawable.setVisible(true, true);
            animationDrawable.start();

        }
    });

答案 1 :(得分:0)

首先,创建一个可绘制的动画矢量。这是一个很好(简单)的教程:https://medium.com/@naththeprince/delightful-animations-in-android-d6e9c62a23d3。接下来,在您的xml文件中,定义一个普通按钮,如下所示:

<Button
  android:drawableLeft="@drawable/your_animated_vector_drawable"
  android:id="@+id/example_button"/>

,然后在Button内添加所需的其他任何属性。

在您的代码中,使用以下代码:

Button button = (Button) findViewById(R.id.example_button);
button.setOnClickListener(v -> {
  // Get the left drawable: (the one you set in the xml file)
  AnimatedVectorDrawable avd =
    (AnimatedVectorDrawable) showPopup.getCompoundDrawables()[0];
  avd.start();
});

这对我有用。希望它也对您有用!