Main.java:
public class Main extends ActionBaractivity{... @OverrIDe public boolean onoptionsItemSelected(MenuItem item) { switch (item.getItemID()) { case R.ID.action_refresh: refresh(); break; default: break; } return super.onoptionsItemSelected(item); } public voID refresh() { LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); ImageVIEw imageVIEw = (ImageVIEw) inflater.inflate(R.layout.action_refresh,null); Animation rotation = AnimationUtils.loadAnimation(this,R.anim.rotate); rotation.setRepeatCount(Animation.INFINITE); imageVIEw.startAnimation(rotation); MenuItem item = menu.findItem(R.ID.action_refresh); item.setActionVIEw(R.layout.action_refresh); }}
menu.xml文件
<menu xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:yourapp="http://schemas.androID.com/apk/res-auto" > <item androID:ID="@+ID/action_refresh" androID:icon="@drawable/ic_action_refresh" androID:title="refresh" androID:actionLayout="@layout/action_refresh" yourapp:showAsAction="ifRoom" /> <item androID:ID="@+ID/category_spinner_item" androID:showAsAction="ifRoom" androID:actionLayout="@layout/action_sort" /></menu>
action_refresh.xml
<?xml version="1.0" enCoding="utf-8"?><ImageVIEw 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" />
动画/ rotate.xml
<rotate xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:fromdegrees="0" androID:todegrees="360" androID:pivotX="50%" androID:pivotY="50%" androID:duration="10000" androID:interpolator="@androID:anim/linear_interpolator" />解决方法 只需改变这一行:
item.setActionVIEw(R.layout.action_refresh);
对此:
MenuItemCompat.setActionVIEw(item,imageVIEw);
它没有为原始线设置动画的原因是因为您要将动作视图设置为静态图像资源,而不是您设置为动画的imageVIEw.
总结以上是内存溢出为你收集整理的android – 无法获取Actionbar Icon动画全部内容,希望文章能够帮你解决android – 无法获取Actionbar Icon动画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)