Mar*_*arc 11 java xml android imagebutton shake
我是新的android和我正在寻找一种方法来点击我的按钮图像.到目前为止,我得到了这个,但它一直崩溃.或者,如果你点击它没有任何作用.我希望你们能帮助我.如果我忘了任何事情只是说出来.代码可能很乱.
我有一个动画文件夹.用shakeanim.xml
码:
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>
MainActivity.java
package com.example.egghatcher;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageButton;
import android.widget.TextView;
public class MainActivity extends Activity {
    ImageButton imageButton;
    TextView clicksToGo;
    Animation shake;
    private int clicks = 100;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        shake = AnimationUtils.loadAnimation(this, R.anim.shakeanim);
    }
    public void addListenerOnButton() {
        imageButton = (ImageButton) findViewById(R.id.imageButton1);
        clicksToGo = (TextView)findViewById(R.id.textView1);
        imageButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                clicks--;               
                clicksToGo.setText("You need to click " + clicks + " more times to open it");
                findViewById(R.id.imageButton1).startAnimation(shake);  
            } 
        });
    }
}
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" />
A. *_*dam 16
用这个替换你的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>
顺便说一句,您可以像这样更改MainActivity"setOnClickListener",因为您已经声明了imageButton.
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);  
            }  
        }); 
如果这有帮助,请将其标记为正确答案.谢谢
| 归档时间: | 
 | 
| 查看次数: | 13112 次 | 
| 最近记录: |