我有一个使用摄像头的应用程序,添加按钮翻转动画 - Android电子
有一个选项存在,它允许切换摄像头, 当用户点击该按钮,我想翻转按钮,并为它回到原来的状态,我似乎找不到解决办法或这样做。
有什么建议吗?在ImageView
当如果你想翻转按钮按钮被点击
我有一个使用摄像头的应用程序,添加按钮翻转动画 - Android电子
有一个选项存在,它允许切换摄像头, 当用户点击该按钮,我想翻转按钮,并为它回到原来的状态,我似乎找不到解决办法或这样做。
有什么建议吗?在ImageView
当如果你想翻转按钮按钮被点击
利用规模属性和它返回到原来的状态
android:scaleX="-1" //To flip horizontally
android:scaleY="-1" //To flip vertically
,反之亦然
示例:
float scalingFactor = 0.5f; // scale down to half the size
view.setScaleX(scalingFactor);
view.setScaleY(scalingFactor);
这个答案对您有帮助吗? @ 2D3D –
示例存在于And固醇开发人员指南:
https://developer.android.com/training/animation/cardflip.html
https://developer.android.com/training/animation/anim_card_flip.mp4
对于使用动画到单一视图(不是所有的屏幕)使用View.setAnimation()
Animation a = AnimationUtils.loadAnimation(this,R.anim.card_flip_left_in);
myView.setAnimation(a);
a.startNow();
创建动画个XML:
card_flip_left_in.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Before rotating, immediately set the alpha to 0. -->
<objectAnimator
android:valueFrom="1.0"
android:valueTo="0.0"
android:propertyName="alpha"
android:duration="0" />
<!-- Rotate. -->
<objectAnimator
android:valueFrom="-180"
android:valueTo="0"
android:propertyName="rotationY"
android:interpolator="@android:interpolator/accelerate_decelerate"
android:duration="@integer/card_flip_time_full" />
<!-- Half-way through the rotation (see startOffset), set the alpha to 1. -->
<objectAnimator
android:valueFrom="0.0"
android:valueTo="1.0"
android:propertyName="alpha"
android:startOffset="@integer/card_flip_time_half"
android:duration="1" />
</set>
card_flip_left_out.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Rotate. -->
<objectAnimator
android:valueFrom="0"
android:valueTo="180"
android:propertyName="rotationY"
android:interpolator="@android:interpolator/accelerate_decelerate"
android:duration="@integer/card_flip_time_full" />
<!-- Half-way through the rotation (see startOffset), set the alpha to 0. -->
<objectAnimator
android:valueFrom="1.0"
android:valueTo="0.0"
android:propertyName="alpha"
android:startOffset="@integer/card_flip_time_half"
android:duration="1" />
</set>
card_flip_right_in.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Before rotating, immediately set the alpha to 0. -->
<objectAnimator
android:valueFrom="1.0"
android:valueTo="0.0"
android:propertyName="alpha"
android:duration="0" />
<!-- Rotate. -->
<objectAnimator
android:valueFrom="180"
android:valueTo="0"
android:propertyName="rotationY"
android:interpolator="@android:interpolator/accelerate_decelerate"
android:duration="@integer/card_flip_time_full" />
<!-- Half-way through the rotation (see startOffset), set the alpha to 1. -->
<objectAnimator
android:valueFrom="0.0"
android:valueTo="1.0"
android:propertyName="alpha"
android:startOffset="@integer/card_flip_time_half"
android:duration="1" />
</set>
card_flip_right_out.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Rotate. -->
<objectAnimator
android:valueFrom="0"
android:valueTo="-180"
android:propertyName="rotationY"
android:interpolator="@android:interpolator/accelerate_decelerate"
android:duration="@integer/card_flip_time_full" />
<!-- Half-way through the rotation (see startOffset), set the alpha to 0. -->
<objectAnimator
android:valueFrom="1.0"
android:valueTo="0.0"
android:propertyName="alpha"
android:startOffset="@integer/card_flip_time_half"
android:duration="1" />
</set>
你不明白我想达到什么,只有按钮不会翻转整个屏幕 – 2D3D
这不是必需的。动画a = AnimationUtils.loadAnimation(this,R.anim.card_flip_left_in); myView.setAnimation(a); a.startNow(); –
使用ObjectAnimator这样的:
cameraSwitchButton.setImageResource(icon1ResourceId);
cameraSwitchButton.setOnClickListener({
ObjectAnimator animator = ObjectAnimator.ofFloat(cameraSwitchButton, "scaleX", 0.0f).setDuration(100);
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animator) {
cameraSwitchButton.setImageResource(icon2ResourceId);
ObjectAnimator.ofFloat(cameraSwitchButton, "scaleX", 1.0f).setDuration(100).start();
}
});
animator.start();
// Camera switch logic here...
});
如果你想翻转回来,决定哪个图标,你需要在这些行:
cameraSwitchButton.setImageResource(icon(1 or 2)ResourceId);
显示一些代码,更具体。你试过什么了? –