LWUIT Painter:如何将图像作为背景?

时间:2012-03-24 20:31:31

标签: java java-me lwuit

我正在尝试使用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);
        }

成功。

有谁能告诉我如何正确地做到这一点? 而且,如果有人知道如何在大于屏幕大小的图像上进行平移,你能帮助我吗?感谢。

1 个答案:

答案 0 :(得分:1)

将setBgTransparency用于255,不要调用clipRect方法。

您可以查看Component.java中的bg painter代码,它非常灵活。