我正在尝试使用Painter让某个jpg成为我的背景。
mapScreen = new Form("Map");
try
{
Image image = Image.createImage("/res/try.jpg");
map = new Map(image);
mapScreen.addComponent(map);
} catch (Exception e)
{
System.out.print("Error\n\n"+e.getMessage());
mapScreen.addComponent(new Label(e.getMessage()));
}
对于地图类,
public Map(Image image)
{
this.mapImage = image;
painter = new Painter()
{
public void paint(Graphics g, Rectangle clippingRect)
{
g.clipRect(0, 0, getWidth(), getHeight());
g.drawImage(mapImage, getX(), getY());
}
};
}
public void initComponent()
{
setX(0);
setY(0);
getSelectedStyle().setBgTransparency(0);
getSelectedStyle().setBgPainter(painter);
getUnselectedStyle().setBgTransparency(0);
getUnselectedStyle().setBgPainter(painter);
}
这个问题是图像根本没有出现,当我尝试调试时,它甚至没有进入画面(Graphics g,Rectangle clippingRect)...... 代码
try
{
Image image = Image.createImage("/res/try.jpg");
map = new Map(image);
mapScreen.addComponent(map);
}
成功。
有谁能告诉我如何正确地做到这一点? 而且,如果有人知道如何在大于屏幕大小的图像上进行平移,你能帮助我吗?感谢。
答案 0 :(得分:1)
将setBgTransparency用于255,不要调用clipRect方法。
您可以查看Component.java中的bg painter代码,它非常灵活。