Java Android按钮图像抖动动画

Java Android按钮图像抖动动画,java,android,xml,imagebutton,shake,Java,Android,Xml,Imagebutton,Shake,我是android新手,我正在寻找一种方法,在点击时摇动我的按钮。到目前为止我都知道了,但它总是崩溃。或者,如果你点击它,什么都不起作用。 我希望你们能帮助我。如果我忘了什么,就说出来。代码可能很混乱 我有一个动画文件夹。使用shakeanim.xml <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" a

我是android新手,我正在寻找一种方法,在点击时摇动我的按钮。到目前为止我都知道了,但它总是崩溃。或者,如果你点击它,什么都不起作用。 我希望你们能帮助我。如果我忘了什么,就说出来。代码可能很混乱

我有一个动画文件夹。使用shakeanim.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300"
    android:fromXDelta="0"
    android:interpolator="@android:anim/cycle_interpolator"

    android:toXDelta="10" />
代码:

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context=".MainActivity" >

     <ImageButton
         android:id="@+id/imageButton1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerHorizontal="true"
         android:layout_centerVertical="true"
         android:src="@drawable/chest"
        android:background="@null"/>

     <TextView
         android:id="@+id/textView1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_above="@+id/imageButton1"
         android:layout_centerHorizontal="true"
         android:layout_marginBottom="51dp"
         android:text="100 Clicks" />

</RelativeLayout>
shakeanim.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="300"
    android:fromXDelta="0"
    android:interpolator="@android:anim/cycle_interpolator"

    android:toXDelta="10" />

用此文件替换shakeanim.xml文件

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:duration="150"
        android:fromXDelta="-10%"
        android:repeatCount="5"
        android:repeatMode="reverse"
        android:toXDelta="10%"/>
</set>

如果这有帮助,请将其标记为正确答案。谢谢你

如果你真的想让它震动,你应该使用自定义的插值器,它可以追溯到以前,幸运的是你不能在动画的XML资源中使用插值器,它只能以编程的方式使用。检查这个:动画跳跃!这张表格是怎么回事
imageButton.setOnClickListener(new OnClickListener() {

            @Override 
            public void onClick(View v) {
                clicks--;               
                clicksToGo.setText("You need to click " + clicks + " more times to open it");
                imageButton.startAnimation(shake);  
            }  
        });