bitmapsprite.java
来自「Sony Ericsson手机上的Facebook客户端全套代码」· Java 代码 · 共 240 行
JAVA
240 行
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: BitmapSprite.java
package se.southend.drops.gui;
import java.io.PrintStream;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import se.southend.drops.pixelfilter.Filter;
import se.southend.drops.pixelfilter.Transition;
import se.southend.drops.scene.Sprite;
public class BitmapSprite extends Sprite
{
public BitmapSprite()
{
transform = 0;
filterEnabled = true;
}
public BitmapSprite(Image image)
{
transform = 0;
filterEnabled = true;
setImage(image);
}
public BitmapSprite(Image frames[])
{
transform = 0;
filterEnabled = true;
setFrames(frames);
}
public BitmapSprite(Image frameImage, int wFrame, int hFrame)
{
transform = 0;
filterEnabled = true;
int nbrFrames = (frameImage.getWidth() / wFrame) * (frameImage.getHeight() / hFrame);
Image frames[] = new Image[nbrFrames];
int xSrc = 0;
int ySrc = 0;
for(int i = 0; i < nbrFrames; i++)
{
if(xSrc > frameImage.getWidth() - wFrame)
{
System.out.println("Error: Image width not dividable by frame width");
return;
}
frames[i] = Image.createImage(frameImage, xSrc, ySrc, wFrame, hFrame, 0);
if(xSrc == frameImage.getWidth() - wFrame)
{
xSrc = 0;
ySrc += hFrame;
} else
{
xSrc += wFrame;
}
}
setFrames(frames);
}
public void setImage(Image image)
{
if(image == null)
this.frames = null;
Image frames[] = {
image
};
setFrames(frames);
}
public final Image[] getFrames()
{
return frames;
}
public final void setFrames(Image frames[])
{
this.frames = frames;
setNbrFrames(frames.length);
}
public final Image getImage()
{
return frames == null ? null : frames[getFrameNbr()];
}
public final Image getTransformedImage()
{
if(frames == null)
{
return null;
} else
{
Image image = frames[getFrameNbr()];
return Image.createImage(image, 0, 0, image.getWidth(), image.getHeight(), transform);
}
}
public final Image getFrameImage(int frameNbr)
{
return frames[frameNbr];
}
public int getWidth()
{
if(filterEnabled && filter != null)
return filter.getWidth();
if(transition != null)
return transition.getWidth();
if(rot90)
return frames == null ? 0 : frames[getFrameNbr()].getHeight();
else
return frames == null ? 0 : frames[getFrameNbr()].getWidth();
}
public int getHeight()
{
if(filterEnabled && filter != null)
return filter.getHeight();
if(transition != null)
return transition.getHeight();
if(rot90)
return frames == null ? 0 : frames[getFrameNbr()].getWidth();
else
return frames == null ? 0 : frames[getFrameNbr()].getHeight();
}
public final int getTransform()
{
return transform;
}
public void setTransform(int transform)
{
this.transform = transform;
if(transform == 5 || transform == 6 || transform == 7 || transform == 4)
rot90 = true;
else
rot90 = false;
}
public Transition getTransition()
{
return transition;
}
public void setTransition(Transition transition)
{
this.transition = transition;
}
public void setFadeIn(boolean fadeIn)
{
this.fadeIn = fadeIn;
}
public Filter getFilter()
{
return filter;
}
public void setFilter(Filter filter)
{
this.filter = filter;
}
public void setFilterEnabled(boolean enabled)
{
filterEnabled = enabled;
}
public void paint(Graphics graphics)
{
if(frames == null && filter == null)
{
System.out.println("Warning: BitmapSprite " + this + " displayed with no image");
return;
}
if(!isOnScreen())
return;
int xScr = getScreenX();
int yScr = getScreenY();
if(transition != null)
{
if(filterEnabled && filter != null)
{
filter.render();
if(fadeIn)
transition.setRGB(null, 0, 0, filter.getRGB(), filter.getWidth(), filter.getHeight());
else
transition.setRGB(filter.getRGB(), filter.getWidth(), filter.getHeight(), null, 0, 0);
}
transition.paintAt(graphics, xScr, yScr);
} else
if(filterEnabled && filter != null)
{
filter.paintAt(graphics, xScr, yScr);
} else
{
int frameNbr = getFrameNbr();
if(frameNbr >= 0)
{
Image frame = frames[frameNbr];
paintFrame(graphics, frame, xScr, yScr);
}
}
}
protected void paintFrame(Graphics graphics, Image frame, int xScr, int yScr)
{
if(transform == 0)
graphics.drawImage(frame, xScr, yScr, 20);
else
graphics.drawRegion(frame, 0, 0, frame.getWidth(), frame.getHeight(), transform, xScr, yScr, 20);
}
public static final int UNIT = 8;
public static final int TRANS_NONE = 0;
public static final int TRANS_ROT90 = 5;
public static final int TRANS_ROT180 = 3;
public static final int TRANS_ROT270 = 6;
public static final int TRANS_MIRROR = 2;
public static final int TRANS_MIRROR_ROT90 = 7;
public static final int TRANS_MIRROR_ROT180 = 1;
public static final int TRANS_MIRROR_ROT270 = 4;
private int transform;
private boolean rot90;
protected Image frames[];
private Transition transition;
private Filter filter;
private boolean filterEnabled;
private boolean fadeIn;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?