您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制如何在手机应用程序中制作动画 正文
如何在手机应用程序中制作动画

如何在手机应用程序中制作动画

点击数:7282 次   录入时间:03-04 11:40:08   整理:http://www.55dianzi.com   电脑-单片机-自动控制

    在前一讲中我们讲述了如何利用低级API制作图表应用程序的方法。如果仅仅是图表内容的表示,那么在WEB上就可以用静止的页面表示。但是在手机应用程序中表示的话,就能让图表内容具有动感。这就是应用程序与WEB的区别,这也正是其优点所在。在本讲中我们将进一步讲述如何在手机应用程序中制作动画,并详细介绍其具体操作方法。

    ■4-1动画

    基本上,动画能够表现出文字、图形、图片等的描绘位置和画面自身的连续变化。目前的程序中,按下按键,就会实行既定的方法。直到实行完既定方法之后才能进行其他方法操作。但是,表示动画过程中,不实行动画表示以外的方法就没有什么意义,因此应该有必要在表示动画的同时也可以实行其他的方法。所以掌握线程和计时器技术的知识和应用是必不可少的。接下来,我们将详细介绍线程和计时器。

    ■4-1-1线程

    线程是执行程序的最小单位,用来执行Standalone的Java应用程序的main()方法。当你需要同步执行多个操作,可以用多线程并发执行。使用这种线程的程序被称为“多线程程序”。

    ■4-1-1-1线程的使用

    首先我们尽快学习怎样使用“线程”。有两种方法能使用线程:Runnable接口的使用方法和Thread类的继承类的定义方法。在此,我们使用前一个方法—实现Runnable接口的方法。

    实现Runnable接口的类必须要覆盖run()方法。覆盖的run()方法中记述了用线程执行的处理。(ex.1)

    classTestCANvasextendsCanvasimplementsRunnable{

    /**

    *线程执行的处理

    **/

    publICvoidrun(){

    //记述处理

    .

    .

    }

    /**

    *描绘方法

    **/

    publicvoidpaint(Graphicsg){

    //描绘处理

    .

    .

    }

    }

    ex.1

    另外一种方法是使用线程类Thread。如下所示:用构造函数传递一个参数到该类的实例,该参数是实现Runnable接口的。使用start()方法就启动该线程了。(ex.2)

    Runnablerunnable=newTestCanvas();//实现Runnable类

    Threadthread=newThread(runnable);

    thread.start();

    ex.2

    ■4-1-1-2制作简单的动画

    接着我们来看线程如何被用于制作简单的动画。在下面的实例中,球从左向右运动。(ex.3)

    importjavax.microedition.LCDui.Display;

    importjavax.microedition.midlet.MIDlet;

    importjavax.microedition.midlet.MIDletStateChangeException;

    /**

    *球飞出去的实例动画

    */

    publiCClassMovingBallextendsMIDlet{

    privateDisplaydisplay;

    privateMovingBallCanvascanvas;

    /**

    *构造函数

    */

    publicMovingBall(){

    display=Display.getDisplay(this);

    canvas=newMovingBallCanvas();

    }

    /**

    *运行时的处理

    */

    protectedvoidstartApp()throwsMIDletStateChangeException{

    display.setCurrent(canvas);

    }

    protectedvoidpauseApp(){}

    protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{}

    }

    importjavax.microedition.lcdui.Canvas;importjavax.microedition.lcdui.Graphics;

    /**

    *球飞出去的实例动画的canvas。

    */

    publicclassMovingBallCanvasextendsCanvasimplementsRunnable{

    privateintx;//球的X坐标

    /**

    *构造函数

    */

    publicMovingBallCanvas(){

    Threadth=newThread(this);

    th.start();

    }

    /**

    *线程运行的处理

    */

    publicvoidrun(){

    while(true){

    x+=3;//更改球的坐标

    repaint();//再次描绘

    try{

    Thread.sleep(100);//100毫秒待机

    }catch(InterruptedExceptione){

    }

    }

    }

    /**

    *描绘方法

    */

    protectedvoidpaint(Graphicsg){

    //清除画面

    g.setColor(255,255,255);//白色

    g.fillRect(0,0,getWidth(),getHeight());

    //表示球

    g.setColor(255,0,0);

    g.fillArc(x,50,20,20,0,360);

    }

    }

    Figure1

    ■4-1-1-3线程的待机处理

    ■4-1-1-3线程的待机处理

    我们看看run()是如何支持等待机制的。如果没有任何等待,球会迅速从左向右飞而我们无法察觉。为此,执行Thread中的静态方法sleep。在其参数中指定等待时间(单位毫秒)。(ex.4)

    Figure1

    ■

    4-1-1

    -3线程的待机处理

    我们看看run()是如何支持等待机制的。如果没有任何等待,球会迅速从左向右飞而我们无法察觉。为此,执行Thread中的静态方法sleep。在其参数中指定等待时间(单位毫秒)。(ex.4)

    Thread.sleep(100);//100毫秒待机

    ex.4

    如此例所示,处理和处理之间能够待机100毫秒,按另外观点看,与在100毫秒的定期间隔下运行处理是一样的。定期间隔下的处理,使用名为Timer的类同样能够实现。下面说明一下Timer。

    ■4-1-2Timer

    JAVA提供了计时器功能,它能有规则地、重复地执行或者在指定时间里执行。线程的运算可以是连续的,而不仅仅是按规则的进度。计时器的便利在于系统已经为你准备好特定的方法用于在指定时间或定时执行。

    ■4-1-2-1时间的使用

    Timer类和TimerTask类能够实现计时器的功能。

    实例化一个TIMER的类,再调用一个继承了TIMERTASK的类做SCHEDULE。这样,TimerTask子类的run()就会在指定时间或周期被Timer实例呼叫。(表1)



www.55dianzi.com

360截图20120507112220625.jpg

    Table1

    Timer

    在Timer类中主要使用下面的方法。

    •voidschedule(TimerTasktask,DatEDAte)

    •voidschedule(TimerTasktask,Datedate,longperiod)

    •voidschedule(TimerTasktask,longdelay)

    •voidschedule(TimerTasktask,longdelay,longperiod)

    •voidCANcel()

    这些schedule方法用于设定任务及何时执行。若不设定第三个自变量period,在第二个自变量所指定的时间任务只执行一次。否则第二个自变量所指定的时间之后,任务会反复执行,自变量period是反复执行时的延时。另外,呼叫出cancel方法,则会结束计时器程序。

    TimerTask

    TimerTask是抽象类。需要定义其子类。在所继承的类中必须重载抽象方法run(),必须根据计时器的schedule定义具体的操作。

    在TimerTask类中主要使用如下的方法。

[1] [2] [3] [4]  下一页


本文关键字:如何  程序  制作  动画  手机应用  电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制

《如何在手机应用程序中制作动画》相关文章>>>