kum*_*mar 4 android button android-animation
我想在点击按钮时旋转按钮内的图像.我尝试使用ImageView并且它可以工作但是为了可访问性目的,我需要使用Button而不是ImageView.
这里的向下箭头是按钮背景.
单击按钮显示额外数据,并旋转背景箭头.如何在点击时设置动画并旋转按钮背景?
布局代码供参考:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" >
<LinearLayout
android:id="@+id/cases_actions_row"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/case_action_item_1"
style="@style/card_action_button"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<Button
android:id="@+id/case_action_item_2"
style="@style/card_action_button"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</LinearLayout>
<Button
android:id="@+id/cases_expand_button"
style="@style/card_action_button"
android:layout_height="20dp"
android:layout_width="20dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@drawable/ic_arrow" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
PPa*_*san 18
最简单的方法是旋转整个按钮(正如Frank N. Stein在评论中建议的那样,ImageButton可能是最合适的,尽管没有什么可以阻止你使用不同的小部件).
有几种方法可以旋转按钮,但是a ViewPropertyAnimator也可能是最简单的方法:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float deg = button.getRotation() + 180F;
button.animate().rotation(deg).setInterpolator(new AccelerateDecelerateInterpolator());
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:顺便说一句,如果您希望箭头反转其原始动画,您可以尝试:
float deg = (button.getRotation() == 180F) ? 0F : 180F;
Run Code Online (Sandbox Code Playgroud)
代替 float deg = button.getRotation() + 180F;
| 归档时间: |
|
| 查看次数: |
7101 次 |
| 最近记录: |