正如标题所示,我试图在imageview
上执行动画效果,点击Button
图像开始旋转,在animation effect
结束时图像变为另一个image
答案 0 :(得分:2)
res / anim中的动画rotation.xml(使用特定旋转风格的参数):
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate android:duration="300"
android:startOffset="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360"
android:fromDegrees="0"
></rotate>
</set>
在这样的活动中:
Button yourButton=(Button) findViewById(R.id.yourButton);
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Animation animation = AnimationUtils.loadAnimation(yourActivity, R.anim.rotation);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
v.setBackgroundResource(R.drawable.anotherImage);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
v.startAnimation(animation);
}
});
编辑:除非通过轮换表示&#34;翻转&#34;?也许还要检查一下:http://developer.android.com/training/animation/cardflip.html
答案 1 :(得分:0)
我想出了在动画旋转后是否要更改图像的方法,这是一种方法,即您无法通过第二次单击或更多操作恢复到旧图像。因此,唯一的方法就是在Checkbox(而不是Imageview / button)上执行相同的动画。
<android.support.v7.widget.AppCompatCheckBox
android:id="@+id/ivCLick"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="40dp"
android:background="@drawable/chbselector"
android:button="@null"
/>
chbselector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/ic_keyboard_arrow_down_grey_24dp"
android:state_checked="false"/>
<item android:drawable="@drawable/ic_keyboard_arrow_up_black_24dp"
android:state_checked="true"/>
<item android:drawable="@drawable/ic_keyboard_arrow_down_grey_24dp"/>
</selector>
rotation.xml:-
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="300"
android:startOffset="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360"
android:fromDegrees="0" />
</set>
我的Java代码:-
findViewById(R.id.ivCLick).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotation);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
Log.d("TAG", "onAnimationEnd: "+((AppCompatCheckBox)v).isChecked());
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
v.startAnimation(animation);
}
});
(((AppCompatCheckBox)v).isChecked()使您无论是否单击图像都可以天气好坏。可以根据需要对其进行处理。