Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > j2me: canvas+image1+image2+...


Автор: xmailer 27.11.2012, 21:29
Задача: Имеется в девайс типа touchscreen. Есть базовый image, на который в paint наносим ряд png image (изображения типа кнопка). Как отследить в pointerPressed на какой image нажал пользователь.

Видимый вариант: при загрузки приложения создаем все image и запоминаем их x,y,width,height, в pointerPressed проверяем x,y на вхождение в регионы x,y,width,height каждого изображения и делаем вывод на какой image нажал пользователь.

Через gamecanvas и sprite, не нашел как отследить нажатие на спрайт.

Существует ли другой вариант решения задачи, не хотелось бы изобретать велосипед. Спасибо.

Код

class CanvasField extends Canvas {

    private int w, h;
    private Image image1, image2;

    CanvasField() {
        w = getWidth();
        h = getHeight();
        try {
            image1  = Image.createImage("/toyota_f.png");
        }
        catch (java.io.IOException ie) {}
        try {
            image2  = Image.createImage("/toyota_l.png");
        }
        catch (java.io.IOException ie) {}
    }
    
    public void paint(Graphics g)
    {
        g.drawImage(image1, 0, 0, Graphics.TOP|Graphics.LEFT);
        g.drawImage(image2, w/2, h/2, Graphics.HCENTER|Graphics.VCENTER);
    }    
    
}

Автор: Studentus 1.12.2012, 20:22
Я думаю что в вашем случае можно попробовать использовать интерфейс Choise. Он  предназначен для этого и содержит в себе методы, создающие возможность выбора элементов.

Автор: Studentus 3.12.2012, 13:12
Но всe таки вариант с ПоинтэрПрэссэд выглядет проще.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)