关于在toolbar 的menu中控件或者menu的item做动画的实现
来源:互联网 发布:学嵌入式好还是java好? 编辑:程序博客网 时间:2024/05/21 10:12
突发奇想,突然想给toobar上面的那个扫一扫标志做个动画,这样子明显一些,
但是真的开始做了,才发现原来跟平常的view做动画 有点不一样。
首先是我的menu xml文件
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_capture" android:icon="@drawable/ic_action_scan" android:orderInCategory="100" android:title="@string/menu_capture" app:showAsAction="always" /> <item android:id="@+id/action_about_us" android:orderInCategory="200" android:title="@string/menu_about_us" app:showAsAction="never" /> <item android:id="@+id/action_feedback" android:orderInCategory="300" android:title="@string/menu_feedback" app:showAsAction="never" /></menu>
可以看到 主要就是那
ic_action_scan这个 做动画呢。那么接下来正式开始了
我又重新建立了个layout布局文件,里面就一个imageview。主要就是显示 扫一扫图片的
action_view.xml
<?xml version="1.0" encoding="utf-8"?><ImageView xmlns:android="http://schemas.android.com/apk/res/android" style="@android:style/Widget.ActionButton" android:layout_width="wrap_content" android:scaleType="centerInside" android:layout_height="wrap_content" /><!-- 扫一扫动画-->
最后就是在 activity中做动画了
@Override public boolean onOptionsItemSelected(MenuItem item) { if (mActionBarDrawerToggle != null && mActionBarDrawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.getItemId()) { case R.id.action_capture: showToast("扫一扫"); showAnimate(item); //这里开始动画 break; case R.id.action_about_us: showToast("关于我们"); break; case R.id.action_feedback: showToast("反馈"); break; } return super.onOptionsItemSelected(item); }
/** * item做动画 * * @param item */ private void showAnimate(MenuItem item) { hideAnimate(); menuItem = item; //这里使用一个ImageView设置成MenuItem的ActionView,这样我们就可以使用这个ImageView显示旋转动画了 ImageView qrView = (ImageView) getLayoutInflater().inflate(R.layout.action_view, null); qrView.setImageResource(R.drawable.ic_action_scan); menuItem.setActionView(qrView); //显示动画 Animation animation = AnimationUtils.loadAnimation(this,R.anim.shake); animation.setRepeatMode(Animation.RESTART); animation.setRepeatCount(Animation.INFINITE); qrView.startAnimation(animation); }
/** * 关闭动画 */ private void hideAnimate() { if(menuItem != null){ View view = menuItem.getActionView(); if(view != null){ view.clearAnimation(); menuItem.setActionView(null); } } }
上面用到了2个动画布局文件
cycle_7.xml
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="7" />
shake.xml
<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromXDelta="0" android:interpolator="@anim/cycle_7" android:toXDelta="10" />
0 0
- 关于在toolbar 的menu中控件或者menu的item做动画的实现
- ToolBar修改menu item的字体颜色
- ToolBar修改menu item的字体颜色
- android设置toolbar的menu itemTextView颜色 set toolbar menu item text color
- 关于toolbar的menu显示icon问题
- 关于Toolbar menu混乱的问题
- 在ActionBar / ToolBar 中添加 overflow menu的方法
- Fragment中Toolbar的Menu创建过程
- Toolbar改变Action Menu Item 的文字颜色
- 用代码动态控制Menu的menu item 或者ActionBar的action item
- Android中获取Menu的item实例
- Toolbar和Menu的结合
- Toolbar menu 遇到的问题
- Toolbar menu 遇到的问题
- Toolbar的menu属性说明
- 关于修改Toolbar上menu的字体颜色的方法
- menu控件的使用
- Menu控件的使用
- 欢迎使用CSDN-markdown编辑器
- Maven下使用Jetty进行Debug
- Maven导出工程依赖的jar包
- Junit hamcrest使用
- jdk6 HttpServer的使用
- 关于在toolbar 的menu中控件或者menu的item做动画的实现
- python脚本自动监视重启tomcat进程
- tcpdump libnet libpcap 介绍及编译
- 如何在eclipse jee中创建Maven project并且转换为Dynamic web project
- 基于universalimageloader实现的图片加载控件BlurImageView
- logstash配置java环境
- request.getParameterMap 转换 成map
- 文件的上传和下载
- JavaBean中的get/set 的命名规范