1
当我目前正与一组的ToggleButtons与多个国家的背景资源和旋转动画工作。一切工作正常,直到一个切换按钮被按下,在这种情况正在发生:安卓:背景绘制不旋转旋转切换按钮
- 当按钮被聚焦,它得到重新绘制,但在原来的状态,因为它是在旋转0
- 当该按钮被释放,它试图用真实值背景重新绘制新背景,但是由于使用原始切换按钮高度作为宽度,所以图像宽度被裁剪。
- 当按钮被再次聚焦,它发生了同样的问题:1)。
- 当按钮被释放时,它得到正确重绘。
到目前为止,我现在问题是,原来的drawables不旋转,因此这种行为。我目前的解决方案是为每个旋转使用三个不同的切换按钮(90°,0°,-90°),动画和隐藏当前按钮,然后显示新按钮(使用相同的drawable并使用XML旋转它们标签),但我觉得是一种累赘......
下面是用于90°动画XML:
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fromDegrees="0"
android:toDegrees="90"
android:pivotX="50%"
android:pivotY="50%"
android:duration="250"
android:fillAfter="true"
android:fillEnabled="true" >
</rotate>
的XML的切换按钮背景:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/record_button_on_pressed"
android:state_checked="true" android:state_pressed="true"/>
<item android:drawable="@drawable/record_button_pressed" android:state_checked="true"
android:state_focused="false"/>
<item android:drawable="@drawable/record_button_on_press"
android:state_checked="false" android:state_pressed="true"/>
<item android:drawable="@drawable/record_button" android:state_checked="false"
android:state_focused="false"/>
</selector>
而且用于旋转视图的代码:
RotateAnimation rotate = (AnimationUtils.loadAnimation(this,
R.anim.rotation90deg);
startStopRecording.startAnimation(rotate);
希望你们能帮助我。
一些代码会有帮助。 –
你可以展示你如何做旋转?如果您旋转按钮,那么绘图板也应该旋转。 – Eluvatar
drawable正确旋转,但是当执行焦点或状态更改时,视图显示错误。还在原始问题上添加了相应的代码。 – vicmns