⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 animationsequence.java

📁 J2ME MIDP_Example_Applications
💻 JAVA
字号:
// Copyright 2002 Nokia Corporation. 
// 
// THIS SOURCE CODE IS PROVIDED 'AS IS', WITH NO WARRANTIES WHATSOEVER, 
// EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF MERCHANTABILITY, FITNESS 
// FOR ANY PARTICULAR PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE 
// OR TRADE PRACTICE, RELATING TO THE SOURCE CODE OR ANY WARRANTY OTHERWISE 
// ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE AND WITH NO 
// OBLIGATION OF NOKIA TO PROVIDE THE LICENSEE WITH ANY MAINTENANCE OR 
// SUPPORT. FURTHERMORE, NOKIA MAKES NO WARRANTY THAT EXERCISE OF THE 
// RIGHTS GRANTED HEREUNDER DOES NOT INFRINGE OR MAY NOT CAUSE INFRINGEMENT 
// OF ANY PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OWNED OR CONTROLLED 
// BY THIRD PARTIES 
// 
// Furthermore, information provided in this source code is preliminary, 
// and may be changed substantially prior to final release. Nokia Corporation 
// retains the right to make changes to this source code at 
// any time, without notice. This source code is provided for informational 
// purposes only. 
// 
// Nokia and Nokia Connecting People are registered trademarks of Nokia
// Corporation.
// Java and all Java-based marks are trademarks or registered trademarks of
// Sun Microsystems, Inc.
// Other product and company names mentioned herein may be trademarks or
// trade names of their respective owners.
// 
// A non-exclusive, non-transferable, worldwide, limited license is hereby 
// granted to the Licensee to download, print, reproduce and modify the 
// source code. The licensee has the right to market, sell, distribute and 
// make available the source code in original or modified form only when 
// incorporated into the programs developed by the Licensee. No other 
// license, express or implied, by estoppel or otherwise, to any other 
// intellectual property rights is granted herein.


package example.postcard;

import java.util.Vector;
import java.io.IOException;
import javax.microedition.lcdui.*;


// A class representing the sequence of Images used
// for an animation. It is constructed from a set of Images
// kept in a directory. The directory name is denoted as 'path'.
// The images in the sequence are named consequetively starting
// with "0.png".
//
// For example, the following is an example of an animation sequence
// of four images starting at <path> = "/images" :
//    /images/0.png
//    /images/1.png
//    /images/2.png
//    /images/3.png

class AnimationSequence
{
    private final Vector vector = new Vector();
    private int widest = 0;  // largest width of any image in the sequence
    private int tallest = 0; // largest height of any image in the sequence


    // Construct an AnimationSequence from the appropriate
    // 'path' where the sequence of Images is stored. The path
    // starts from the root "/" of the jarfile.
    //
    // 'path' is where the animation's .png images can be found,
    // 'maxWidth' is the maximum allowed width of an image
    // 'maxHeight' is the maximum allowed height of an image
    // An exception is thrown if some image in the sequence
    // exceeds maxWidth or maxHeight.

    AnimationSequence(String path, int maxWidth, int maxHeight)
        throws Exception
    {
        Image image;
        int w;
        int h;

        for (int ix = 0; ; ix++)
        {
            try
            {
                image = Image.createImage(path + "/" + ix + ".png");
                if (image != null)
                {
                    w = image.getWidth();
                    if ((w <= 0) || (w > maxWidth))
                    {
                        throw new Exception("Invalid image width");
                    }
                    else if (w > widest)
                    {
                        widest = w;
                    }

                    h = image.getHeight();
                    if ((h <= 0) || (h > maxHeight))
                    {
                        throw new Exception("Invalid image height");
                    }
                    else if (h > tallest)
                    {
                        tallest = h;
                    }

                    vector.addElement(image);
                }
                else
                {
                    throw new Exception("Invalid image: null");
                }
            }
            catch(IOException e)
            {
                if (ix == 0)
                {
                    // If at least one image '0.png' is not found then
                    // an exception is thrown.

                    throw new Exception("No images found");
                }
                else
                {
                    // The last image in the sequence 0.png .. N.png
                    // has been found.

                    break;
                }
            }
        }
    }


    // Return the number of elements in the animation sequence.

    int size()
    {
        return vector.size();
    }


    // Return the indexed image in the sequence if it exists.
    // The index ranges from 0 to (size() - 1).
    // 'ix' is the index of the image in the sequence

    Image elementAt(int ix)
    {
        return (Image)(vector.elementAt(ix));
    }


    // Return the width of the widest Image in the sequence.

    int getMaxImageWidth()
    {
        return widest;
    }


    // Return the height of the tallest Image in the sequence.

    int getMaxImageHeight()
    {
        return tallest;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -