LWUIT Painter: Как сделать изображение фоновым? - PullRequest
1 голос
/ 25 марта 2012

Я пытаюсь использовать 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 Ответ

1 голос
/ 25 марта 2012

Используйте setBgTransparency для 255 и не вызывайте метод clipRect.

Вы можете посмотреть на кодировщик bg в Component.java, который довольно гибкий.

...