我正在研究创建一个支持动画的小部件,理想情况下是通过android.view.animation框架,否则通过在由后台服务触发的代码中设置远程视图的属性。Android主屏幕小部件动画
有没有人有这两种方法中的任何经验,而这也正是我想是可行的,还是我领导了一个死胡同?
我正在研究创建一个支持动画的小部件,理想情况下是通过android.view.animation框架,否则通过在由后台服务触发的代码中设置远程视图的属性。Android主屏幕小部件动画
有没有人有这两种方法中的任何经验,而这也正是我想是可行的,还是我领导了一个死胡同?
它实际上是可能的动画远程视窗部件。问题在于它是超级限制性的,因为在系统进程中运行自定义代码所带来的安全隐患。
我的意思是说Android将只与在通过XML绑定到布局RES /阿尼姆XML文件表示动画工作。一些远程视窗部件支持此
这方面的一个例子是来自一个普通的Android系统的新闻和天气应用程序部件。它正在做的是使用ViewFlipper每10秒左右循环播放每个新闻报道。
<ViewFlipper android:layout_width="match_parent" android:layout_height="wrap_content" android:measureAllChildren="true" android:flipInterval="10000" android:autoStart="true"
android:inAnimation="@android:anim/fade_in" android:outAnimation="@android:anim/fade_out" android:animateFirstView="true">
<TextView android:id="@+id/Description1TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
<TextView android:id="@+id/Description2TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
<TextView android:id="@+id/Description3TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
<TextView android:id="@+id/Description4TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
</ViewFlipper>
在此示例中,您可以将未决意图绑定到每个TextView。所以当用户点击任何一个时,就可能发生不同的操作。
最后,Android在每个版本中都缓慢地添加了对动画视图的支持。例如,TransitionDrawables(交叉淡化选择器drawable)不会交叉淡出,直到Android 3.0。
动画不可能在RemoteViews和RemoteViews更新可以反正发生在每30分钟一次(或手动)的速度...
,你可以试试下面的链接:is-there-a-way-to-animate-on-a-home-widget
你可以只有简单的动画,比如fadeIn或者fadeout,这很简单,你不需要任何布局动画,只需要使用ViewFlipper(花了我3天的时间调查才发现它很容易)。
但它的imposiible写的东西真的很棒,而无需使用自定义的发射
这是可能的,但谨慎使用它,因为它是非常沉重的默认主屏幕实现,你不应该经常使用它。
在Mario Coin Block widget,我使用这样的技术做动画,你可以检出的源代码:http://code.google.com/p/mario-coin-block/source/browse/trunk/MarioWidget.CoinBlock/src/com/gueei/mario/coinBlock/view/CoinBlockView.java
基本思路是手动上一个屏幕外的位图绘制,并使用RemoveViews它取代BitmapView的位图呼叫。
我同意在这里其他的答案,所以我不会再迭代 - 上的小工具有限动画是可能的,但沉重的资源,它可能使主屏幕缓慢和较不敏感,并且电池排水。从我的经验来看 - 它运行不顺畅。 所以底线是 - 没关系,如果它只是几个帧不时变化,或者对于某些事件很少发生在某个事件(例如用户按下或您的服务中的某个事件)
但是,这里有一个想法并不直接回答你的问题,但可能是一个合适的选择(我不知道你的用例,它可能根本不相关) 你是否考虑实现一个动态壁纸?
利弊 - 最高品质的动画, 可以从背景
利弊进行控制 - 没有互动, 替换用户的壁纸...,很难满足每个人的口味
展望同,如果你现在就完成了,如果你可以在这里分享你的解决方案,那将是很好的。 – Bachi 2011-08-15 11:01:37
当然 - 会试图找时间写出来。本质上,诀窍是定义内置初始动画的布局,然后在需要动画时设置这些布局。 IIRC你需要切换到一个新的布局来触发动画,所以你可能需要多个布局,使用相同的动画和它们之间的替代。一旦动画完成,设置一个定时器切换回非动画版本的小部件也很有用 - 否则返回到主屏幕可以再次触发动画。 – Adrian 2011-08-19 11:42:35
你想通过后台服务,布局或动画来控制哪一个?你能否详细描述这个问题? – MoiTempete 2012-01-13 08:36:27