找了一会,好像只有这一种解决方案。
远离就是在菜单按钮上,添加一层布局,然后在这一层布局上试用动画
代码:
public void setRefreshActionButtonState(final boolean refreshing) { if (optionsMenu != null) { final MenuItem refreshItem = optionsMenu .findItem(R.id.action_refresh); if (refreshItem != null) { if (refreshing) { LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); ImageView iv = (ImageView) inflater.inflate(R.layout.actionbar_flushing, null); Animation rotation = AnimationUtils.loadAnimation(this, R.anim.actionbar_rotate); if (iv != null && rotation != null) { iv.startAnimation(rotation); } MenuItemCompat.setActionView(refreshItem, iv); } else { MenuItemCompat.getActionView(refreshItem).clearAnimation(); MenuItemCompat.setActionView(refreshItem, null); } } } }
anim.xml
<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:toDegrees="360" android:pivotX="50%" android:pivotY="50%" android:duration="500" android:repeatCount="-1" android:interpolator="@android:anim/linear_interpolator" />
加入的一层布局:
layout.xml
<?xml version="1.0" encoding="utf-8"?> <ImageButton xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_action_refresh" style="@style/Widget.AppCompat.Light.ActionButton" />
由于兼容API7 ,所以用的 AppCompat
参考:http://stackoverflow.com/questions/9731602/animated-icon-for-actionitem
相关推荐
Action Bar通常包含应用的图标(Logo或Title)、主标题、副标题、菜单按钮以及可选的扩展菜单(如汉堡菜单或抽屉菜单)。在Android API 21及以上版本,Action Bar被Toolbar替代,但其功能和用法基本一致。 实现侧拉...
总结来说,实现“仿微信底部导航加右上角actionBar”的功能,主要涉及以下几个步骤: 1. 创建底部导航栏布局,包括多个Tab。 2. 为每个Tab设置点击事件,切换显示的Fragment。 3. 使用Toolbar作为Action Bar,设置右...
在Android开发中,`DrawerLayout`是...在`ActionBar`上动态切换侧滑菜单按钮和返回按钮,既符合Android设计规范,又能提高应用的易用性。对于开发者而言,熟练掌握这一技术能帮助构建更加专业且用户友好的应用界面。
在微信底部菜单栏的实现中,`RadioGroup`用于显示菜单选项,当用户点击某个菜单项时,`RadioGroup`会自动处理单选按钮的选中状态,同时也可通过监听`OnCheckedChangeListener`来获取用户的选择,进而更新`ViewPager`...
在Android应用开发中,ActionBar是一个重要的组件,它位于应用程序界面的顶部,通常包含应用的logo、标题、菜单项以及操作按钮。本篇文章将深入探讨如何根据需求定制ActionBar,使其更加符合应用的设计风格,提升...
`ActionBar`通常包含应用图标、标题、操作按钮(菜单项)等元素,帮助用户理解和操作应用。而标题中提到的“侧滑第三方框架”,则是指用于实现界面元素(如内容区域或者抽屉)通过手势侧滑显示或隐藏的库,这种设计...
- 使用`android.support.v4.widget.DrawerLayout`(对于支持库)或者`android.widget.DrawerLayout`,并配合`ActionBarDrawerToggle`来处理抽屉的打开和关闭动画以及HomeAsUp按钮的行为。 6. **开关(Toggle)**:...
ActionBar是Android系统中的一个顶部操作栏,它提供了应用程序的标识、导航、操作菜单等功能。在Android 3.0(API Level 11)及更高版本中,默认支持ActionBar,但在更早的版本中需要通过AppCompat库来支持。...
例如,当你点击某个按钮时,可以有一个平滑的Alpha动画改变ActionBar上元素的透明度: ```java ObjectAnimator animation = ObjectAnimator.ofFloat(actionBar.getCustomView(), "alpha", 0f, 1f); animation....
在提供的`FragmentDemo9_Menu`示例中,很可能是展示了如何将`Fragment`的切换与`ActionBar`的菜单项结合。这可能包括以下步骤: 1. 在`onCreateOptionsMenu()`方法中,创建菜单项,如“Fragment A”和“Fragment B...
8. **过渡动画**:在Activity之间切换时,可以使用`ActivityOptionsCompat.makeSceneTransitionAnimation()`方法创建一个过渡动画,使得ActionBar的变化更加平滑。 9. **暗色/亮色模式**:为了适应不同的主题或用户...
3. 操作按钮(Overflow Menu):在三个点的菜单中提供更多的操作选项。 4. 自定义视图:开发者可以添加任意的视图元素,如搜索框、切换按钮等。 自定义Action Bar的过程通常涉及以下几个步骤: **1. 创建布局** ...
ActionBar是Android 3.0(API级别11)引入的一个特性,后来在Android Support Library中被支持到更低的API级别,以便在旧版本的Android系统上使用。它的主要功能包括: 1. 应用程序标识:显示应用的图标。 2. 活动...
4. **菜单项**:通过在res/menu文件夹下创建XML菜单文件,然后在Activity中重写`onCreateOptionsMenu()`和`onOptionsItemSelected()`方法,可以添加和处理ActionBar上的菜单项。 5. **扩展功能**:还可以通过重写`...
在Android应用开发中,`ActionBar`是一个非常重要的组件,它位于屏幕顶部,通常用来显示应用的标识、操作菜单以及当前的标题。`ActionBar`提供了一种标准的方式,使得用户能够与应用进行交互,例如切换视图、触发...
微信顶部菜单包含两个主要部分:左侧的标题(通常是应用名)和右侧的菜单按钮。右侧的菜单按钮包括搜索和更多功能。在`MainActivity.java`中,你需要重写`onCreateOptionsMenu`方法,这是初始化菜单的地方。 在`res...
在Android开发中,"左边按钮右边菜单"是一种常见的界面设计模式,它通常用于实现导航或者显示附加的操作选项。这样的布局可以提升用户体验,因为用户可以通过直观的方式访问不同的功能或内容。以下是对这一主题的...
8. **自定义布局**:在`ActionBar`上添加自定义视图,可以创建一个布局文件,然后通过`setCustomView()`方法将其设置到`ActionBar`上。这样可以实现如微信顶部的搜索框或者个人头像等复杂功能。 9. **显示和隐藏...
以上步骤完成后,当你在Android设备上运行应用时,点击ActionBar的home图标,将会看到预期的动画效果,即home图标在侧滑菜单打开和关闭之间平滑地切换样式。 总结一下,实现ActionBar的home图标动画切换效果主要...
- 通过在`<item>`标签中设置`android:showAsAction`属性,可以控制某个菜单项是否显示在ActionBar上或者放到Overflow Menu中。例如,`android:showAsAction="ifRoom"`表示只有当有足够的空间时才显示在ActionBar上...