Изменить код тикера - PullRequest
       24

Изменить код тикера

0 голосов
/ 09 апреля 2011

Я пытаюсь изменить класс ниже, чтобы прокручиваемый текст появлялся за изображением "overlay.png", которое нарисовано в левом нижнем углу экрана.

до

final int screenWidth = 240

Но это не сработало.

Как мне этого добиться?

Спасибо

   public class Ticker extends Field {

        String text;
    final int screenWidth = Display.getWidth();
    int offset = screenWidth;
    Timer timer = new Timer();
    final int delay = 20;
    private Bitmap backgroundImage;

    public void setText(String text) {
        this.text = text;
    }

    public String getText() {
        return text;
    }

    public Ticker(String text) {
        this.text = text;
        backgroundImage = Constants.TICKER_BACKGROUND_IMAGE;
        final int width = Font.getDefault().getAdvance(text);
        TimerTask timerTask = new TimerTask() {
            public void run() {
                offset--;
                if (offset + width == 0) {
                    offset = screenWidth;
                }
                invalidate();
            }
        };
        timer.scheduleAtFixedRate(timerTask, delay, delay);
    }

    protected void layout(int width, int height) {
        int w = Display.getWidth();
        int h = Font.getDefault().getHeight();
        setExtent(w, h);

    }

    protected void paint(Graphics graphics) {


        graphics.drawBitmap( 0, 0, backgroundImage.getWidth(), backgroundImage.getHeight(), backgroundImage, 0, 0 );
        Bitmap b = Bitmap.getBitmapResource("overlay.png");
        graphics.drawBitmap( 0, 0, b.getWidth(), b.getHeight(), b, 0, 0 );

        graphics.setColor(Color.WHITE);
        graphics.drawText(text, offset, 0);
    }


}

1 Ответ

0 голосов
/ 09 апреля 2011

Попробуйте изменить метод рисования следующим образом:

protected void paint(Graphics graphics) {


    graphics.drawBitmap( 0, 0, backgroundImage.getWidth(), backgroundImage.getHeight(), backgroundImage, 0, 0 );

    graphics.setColor(Color.WHITE);
    graphics.drawText(text, offset, 0);

    Bitmap b = Bitmap.getBitmapResource("overlay.png");
    graphics.drawBitmap( 0, 0, b.getWidth(), b.getHeight(), b, 0, 0 );

}
...