Как добавить задержку - PullRequest
1 голос
/ 12 декабря 2011

Я пытаюсь переключаться между двумя изображениями.В моем приложении есть одно изображение, когда при нажатии на это изображение другое изображение приходит в течение секунды, оно уходит, и предыдущее изображение приходит в ту же позицию. Переход должен быть виден пользователю

Мой код

import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.TouchEvent;
class aaa extends UiApplication
{
 public aaa()
{
    pushScreen(new bbb());
}
public static void main(String args[])
{
    aaa theApp= new aaa();
    theApp.enterEventDispatcher();
}
}
class bbb extends MainScreen
{
boolean flag=true;
BitmapField refresh1,refresh2;
HorizontalFieldManager hfm;
public bbb()
{
    hfm= new HorizontalFieldManager(HorizontalFieldManager.FIELD_RIGHT);
    refresh2= new BitmapField(Bitmap.getBitmapResource("refresh_depressed.png"));
    refresh1= new BitmapField(Bitmap.getBitmapResource("refresh.png"))
    {
        protected boolean touchEvent(TouchEvent message) 
        { 
            if ( message.getEvent() == TouchEvent.CLICK ) 
            {
                synchronized (UiApplication.getUiApplication().getAppEventLock()) 
                {
                    if(flag)
                    {
                        hfm.delete(refresh1);
                        hfm.add(refresh2);
                        flag = false;
                    }
                    else
                    {
                        hfm.delete(refresh2);
                        hfm.add(refresh1);
                        flag=true;
                    }
                    return true;
                }                    
            }
            return super.touchEvent(message);
        }
    };

    hfm.add(refresh1);    
    add(hfm);    
}
}

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

пожалуйста, заполните add и delete поле в eventlock.

Я обновил ваш код и поместил его, как показано ниже.

boolean flag = false;
    public bbb()
{
    hfm= new HorizontalFieldManager(HorizontalFieldManager.FIELD_RIGHT);
    Bitmap refresh2 = Bitmap.getBitmapResource("refresh_depressed.png"));
    Bitmap refresh1= Bitmap.getBitmapResource("refresh.png");
    BitmapField bfield = new BitmapField(refresh2)
    {
        protected boolean touchEvent(TouchEvent message) 
        { 
            if ( message.getEvent() == TouchEvent.CLICK ) 
            {
                synchronized (UiApplication.getUiApplication().getAppEventLock()) 
                {
                    if(flag)
                    {
                        bfield.setBitmap(refresh1);
                        flag = false;
                    }
                    else
                    {
                        bfield.setBitmap(refresh2);
                        flag=true;
                    }
                    return true;
                }                    
            }
            return super.touchEvent(message);
        }
    };

    hfm.add(bfield);    
    add(hfm);    
}
0 голосов
/ 12 декабря 2011

Обязательно позвоните invalidate() после удаления / добавления любых полей, чтобы экран перерисовывался и изменения были видны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...