我想在主页小部件上使用动画,即AppWidgetProvider.我希望使用"帧动画"技术:
http://developer.android.com/guide/topics/graphics/2d-graphics.html#frame-animation
我在一项活动中成功使用过.但我无法将该代码转换为AppWidgetProvider.
基本上,在AppWidgetProvider中,我创建并使用RemoteViews对象,AFAIK没有为我提供在布局中获取对ImageView的引用的方法,以便我在动画上调用start().窗口小部件显示时也没有处理程序或回调,因此我可以进行start()调用.
还有另外一种方法吗?我想我可以通过在窗口小部件上进行非常快速的onUpdate()调用来自己动画,但这看起来非常昂贵.
除非您编写自己的主屏幕应用程序,否则不要为应用程序小部件设置动画.
你是正确的,你无法操纵AnimationDrawable或使用Animation它们与app小部件一起工作.
你也是正确的"非常快的onUpdate()调用小部件......看起来非常昂贵",因为它是.对应用程序小部件的更新涉及您AppWidgetProvider和主持主屏幕的进程之间的进程间通信.该系统设计为每30分钟左右更新一次,而不是每秒30帧.
可在RemoteView中使用的一个Widget是ProgressBar.它会激活自己,不会咀嚼资源.一个正方形的ProgressBar是一个正方形,可以很好地覆盖在主屏幕appwidget上.请参阅Android站点的示例代码
设置窗口小部件动画的另一个选项是使用ViewFlipper,可以使用inAnimation和outAnimation:
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:flipInterval="5000"
android:autoStart="true"
android:inAnimation="@android:anim/fade_in"
android:outAnimation="@android:anim/fade_out"
android:animateFirstView="true"/>
Run Code Online (Sandbox Code Playgroud)
创建自定义动画。创建ProgressBar并在android:indeterminateDrawable中设置动画。将ProgressBar添加到小部件布局中,使其可见(不可见)
| 归档时间: |
|
| 查看次数: |
18350 次 |
| 最近记录: |