其实制作动画效果可以有很多办法,例如准备一个图片数组,在程序中不断的切换显示不同的图片,只要时间的间隔设置合理即可出现动画的效果。如果使用MMAPI则可以直接播放gif的动画。其实这和播放视频文件的方法和流程是橡慎培类似的。
首先我们应该准备一个gif文件,放在能够访问到的位置,且确保这个文件会被打包进jar内。在创建播放器之前应该先确认手机上的MMAPI实现是否支持image/gif格式的播放,如果支持则创建Player,如下。
private void createPlayer(InputStream is){
String[] contents = Manager.getSupportedContentTypes(null)
for(int i = 0i<contents.lengthi++){
if(contents[i].toLowerCase().indexOf("image/gif") != -1){
try {
player = Manager.createPlayer(is,"image/gif")
player.realize()
} catch (IOException ex) {
ex.printStackTrace()
} catch (MediaException ex) {
ex.printStackTrace()
}
}
}
}
Player创建后,我们需要获得VideoControl,然后将内容渲染孝渗到屏幕上,VideoControl提供了两种模式,这里我们使用USE_GUI_PRIMITIVE方式,将返回的Item追加到一个Form中显示。最后调用Player.start()即可播放。注意在退出之前一定要释放Player资源,关闭Player并设置为null。GifPlayer的源码如下:
源程序如下
/*
* GifPlayer.java
*
* Created on 2006年6月21日, 下午7:28
*/
package com.j2medev.gif
import java.io.IOException
import java.io.InputStream
import javax.microedition.lcdui.Display
import javax.microedition.lcdui.Form
import javax.microedition.lcdui.Item
import javax.microedition.media.Manager
import javax.microedition.media.MediaException
import javax.microedition.media.Player
import javax.microedition.media.control.VideoControl
import javax.microedition.midlet.*
/**
*
* @author ming
* @version
*/
public class GifPlayer extends MIDlet {
private Display display = null
private Player player = null
public void startApp() {
if(display == null)
display = Display.getDisplay(this)
Form form = new Form("gif player")
InputStream is = getClass().getResourceAsStream("/a.gif")
createPlayer(is)
if(player == null){
form.append("can not play image/gif")
}else{
VideoControl vc = (VideoControl)player.getControl("VideoControl")
if(vc != null){
form.append((Item)vc.initDisplayMode(VideoControl.USE_GUI_PRIMITIVE,null))
}
}
display.setCurrent(form)
try {
player.start()
} catch (MediaException ex) {
ex.printStackTrace()
}
}
private void createPlayer(InputStream is){
String[] contents = Manager.getSupportedContentTypes(null)
for(int i = 0i<contents.lengthi++){
if(contents[i].toLowerCase().indexOf("image/gif") != -1){
try {
player = Manager.createPlayer(is,"image/gif")
player.realize()
} catch (IOException ex) {
ex.printStackTrace()
} catch (MediaException ex) {
ex.printStackTrace()
}
}
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
if(player != null){
player.close()
player = null
http://java.chinaitlab.com/embed/396485.html
小程序和html页面有点不同,主要是使用js来实现动画效果,因为小程序自身有提供一种改孝察方式:wx.createAnimation(OBJECT),它创建一个动画实例 animation ,通过调用实例的方法来描述动画。最后通过动画实例的export方法导出动画数据传递给组件的animation属性,step()来停止动画,step() 表示一组动画完成。
我们主要用wx:createAnimation({})来设置一些参数,例如持续时间、延时、加载方式等,用export()来开启动画,在页面上调用animation=”{{动画名称}}”。具体步骤:
1)创建动画对象并设置有效参数==>wx:createAnimation({参核茄数:有效值})
2)创建一组动画,调用step()来表示一组动画的完成==>动画对象.动画效果.step()
3)在data中设置一个对象vip_animal(自己随意慎瞎命名),用该对象开启动画==>this.setData({vip_animal: animation.export()})
4)在页面上调用动画对象==>animation="{{vip_animal}}"
例子:淡入淡出动画效果(当淡入动画生效后1.5s,淡出动画开始生效)
在wxml上调用animation="{{vip_animal}}"来显示
如果需要设置循环效果。我们可以设置:(setAnimation为)
另一种方式:
在wxml上调用style="{{style_img}}"来显示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)