Как добавить функцию увеличения / уменьшения масштаба на растровом поле? - PullRequest
1 голос
/ 22 марта 2012

Я хочу добавить функциональность для увеличения / уменьшения изображения, отображаемого в поле битовой карты.
У меня есть поиск по этому вопросу, но я не смог получить никаких полезных советов для этого,
Может ли кто-нибудь сказать мне, как добавить пользовательский интерфейс и функциональность для увеличения / уменьшения изображения.

1 Ответ

2 голосов
/ 22 марта 2012

Попробуйте этот код

public final class ZoomScreenDemo extends UiApplication
{
    public static void main(final String[] args)
    {
        // Create a new instance of the application and make the currently
        // running thread the application's event dispatch thread.
        UiApplication app = new ZoomScreenDemo();
        app.enterEventDispatcher();
    }


/**
 * Creates a new ZoomScreenDemo object
 */
public ZoomScreenDemo()
{
    UiApplication.getUiApplication().invokeLater(new Runnable()
    {
        public void run()
        {  
            Dialog.alert("Click trackball or screen to zoom");
        }
    });

    pushScreen(new ZoomScreenDemoScreen());
}


public final static class ZoomScreenDemoScreen extends MainScreen
{    
    private EncodedImage _image;        

    /**
     * Creates a new ZoomScreenDemoScreen object
     */
    public ZoomScreenDemoScreen()
    {          
        setTitle("Zoom Screen Demo");          

        _image = EncodedImage.getEncodedImageResource("img/building.jpg");        
        BitmapField bitmapField = new BitmapField(_image.getBitmap(), FIELD_HCENTER | FOCUSABLE);
        add(bitmapField);            
    }       


   /**
    * @see Screen#navigationClick(int, int)
    */
    protected boolean navigationClick(int status, int time)
    {
        // Push a new ZoomScreen if track ball or screen is clicked
        UiApplication.getUiApplication().pushScreen(new ZoomScreen(_image));                            
        return true;
    }


    /**
    * @see Screen#touchEvent(TouchEvent)
    */
    protected boolean touchEvent(TouchEvent message)
    {     
        if(message.getEvent() == TouchEvent.CLICK)
        {
            UiApplication.getUiApplication().pushScreen(new ZoomScreen(_image));                            
        }
        return super.touchEvent(message);          
    }
}
}
...