如何更改并查看按钮背景图像几毫秒?

时间:2013-07-01 06:12:28

标签: android android-layout

当我点击我要改变的按钮时,在500ms内,按钮backgourndimage并做一个简短的动画。我已经完成了一个代码,但我看不到相关内容,动画没问题,但点击的图像按钮没有出现。

defalut按钮图片是“boutton_a.png” 点击的按钮图像是“button_a_ok.png”

这是onclick按钮代码:

            if (Button04.getText().equals(Reponse)){
                    Button01.setBackgroundResource(R.drawable.boutton_a_ok);
                    AnimationSet set=new AnimationSet(true);
                    Animation animation=new TranslateAnimation(Animation.RELATIVE_TO_SELF,10,Animation.RELATIVE_TO_SELF,10);
                    animation.setDuration(100);
                    set.addAnimation(animation);
                    Button01.startAnimation(set);
            }else{
                    Button01.setBackgroundResource(R.drawable.boutton_a_nok);
                    AnimationSet set=new AnimationSet(true);
                    Animation animation=new TranslateAnimation(Animation.RELATIVE_TO_SELF,10,Animation.RELATIVE_TO_SELF,10);
                    animation.setDuration(100);
                    set.addAnimation(animation);
                    Button04.startAnimation(set);
            }

我该怎么办?

编辑:我发布了所有代码,因为有2个后台资源不同

2 个答案:

答案 0 :(得分:0)

您可以通过为xml中的不同按钮状态创建drawable来更改按钮单击时的按钮背景。这是示例

<selector 
    <item android:drawable="@drawable/button_pressed_yellow"
          android:state_pressed="true" />
    <item android:drawable="@drawable/button_focused_orange"
          android:state_focused="true" />
    <item android:drawable="@drawable/button_normal_green" />
</selector>

将此文件另存为new_button.xml

在drawable文件夹中
<Button
        android:id="@+id/imageButtonSelector"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/new_button" />

答案 1 :(得分:0)

将此文件作为“rotate.xml”放在资源foldr中 RES /动画/ rotate.xml

并使用此类动画

public class DownloadButton extends Button
{
    private String state = "Normal";
    public DownloadButton( Context context )
        {
            super(context);
        }
    public DownloadButton( Context context, AttributeSet attrs )
        {
            super(context, attrs);
        }
    public DownloadButton( Context context, AttributeSet attrs, int defStyle )
        {
            super(context, attrs, defStyle);
        }
    public void setState(String state)
        {
            this.state = state;
            if (this.state.equals("Downloading"))
                {
                    ButtonAnimate();
                }
            else if(this.state.equals("Waiting"))
                {
                    setToWaiting(); 
                }
            else
                {
                    clearAnimation();
                }
        }
    private void setToWaiting()
        {
            setBackgroundResource(R.drawable.waiting);
        }
    public void ButtonAnimate()
        {
            this.startAnimation(AnimationUtils.loadAnimation(MediaSingleton.getInstance().getContext(), R.anim.rotate));
        }
    public String getState()
        {
            return state;
        }
}

并在您的布局中使用此按钮

<com.yourpackage.DownloadButton
    android:id="@+id/Downloadbtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="5dp"
    android:layout_marginTop="2dp"
    android:layout_gravity="center_vertical"
    android:background="@drawable/download"
    />

并像这样使用这个动画

Button button=(Button) findViewById(R.id.yourbtnid);
button.setBackgroundResource(R.drawable.downloading);
button.setState("Downloading");

你已经完成了动画祝你好运