обновлено на изображении - PullRequest
0 голосов
/ 21 июня 2010

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

1 Ответ

0 голосов
/ 21 июня 2010

попробуйте

 public class Test extends UiApplication {

        public static void main(String[] arg) {
            Test app = new Test();
            app.enterEventDispatcher();
        }

        public Test() {
            MyScreen screen = new MyScreen();
            pushScreen(screen);
        }
    }
    class MyScreen extends MainScreen {
        LabelField label;
        public MyScreen() {
            label = new LabelField() {
                protected void paint(Graphics g) {
                    Bitmap bitmap = Bitmap.getBitmapResource("bgimage.jpg");
                    g.drawBitmap(0, 0, getWidth(), getHeight(), bitmap, 0, 0);
                    super.paint(g);
                }
            };

            ButtonField button = new ButtonField("update") {
                protected void fieldChangeNotify(int context) {
                    update();
                    super.fieldChangeNotify(context);
                }
            };

            add(label);
            add(button);
        }

        public void setMessage(String message) {
            synchronized (UiApplication.getEventLock()) {
                label.setText(message);
            }
        }

        private void update() {
            LocationHandler handler = new LocationHandler(this);
            handler.start();
        }
    }

    class LocationHandler extends Thread {
        private MyScreen screen;

        public LocationHandler(MyScreen screen) {
            this.screen = screen;
        }

        public void run() {

            Criteria criteria = new Criteria();
            criteria.setVerticalAccuracy(50);
            criteria.setHorizontalAccuracy(50);
            criteria.setCostAllowed(true);
            criteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_HIGH);
            try {

                LocationProvider provider = LocationProvider.getInstance(criteria);
                Location location = provider.getLocation(-1);
                String speed = location.getSpeed() + "m/s";
                screen.setMessage(speed);
            } catch (LocationException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    }
...