我在这里尝试了许多代码,但没有任何效果 而且那里根本没有教程如何使用 按下按钮时可绘制动画。
但是没有任何作用。
我尝试过:
<?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
,而失物招募则相反。
答案 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();
});
这对我有用。希望它也对您有用!