当我点击我要改变的按钮时,在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个后台资源不同
答案 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");
你已经完成了动画祝你好运