Проблема в использовании настраиваемого поля растрового изображения - PullRequest
0 голосов
/ 18 марта 2012

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

public class ImageButtonField extends BitmapField
{
    public ImageButtonField(Bitmap image) {
        super(image);
    }

    public ImageButtonField(Bitmap image,Field location) {
        //super(image,location);
    }
    public boolean isFocusable() {
        return true;
    }

    protected boolean navigationClick(int status, int time) {
        fieldChangeNotify(0);
        return true;
    }

    protected boolean trackwheelClick(int status, int time) {
        fieldChangeNotify(0);
        return true;
    }

    protected boolean keyChar(char character, int status, int time) {
        if(Characters.ENTER == character || Characters.SPACE == character) {
            fieldChangeNotify(0);
            return true;
        }
        return super.keyChar(character, status, time);
    }
}


  public NativeScreen() {


           super();
               LabelField title = new LabelField("Calendar DatePicker",
                               LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);

              hrzManager = new HorizontalFieldManager() {
                    protected void paintBackground(Graphics graphics) {
                            graphics.setBackgroundColor(0x0007F5ED);
                               graphics.clear();
                              super.paint(graphics);
                 }
              };
             hrzManager.add(title);   
             this.add(hrzManager);
               //The background image.
    backgroundBitmap = Bitmap.getBitmapResource("cryptodemo_jde.png");

   // MainScreen mainScreen = new MainScreen(MainScreen.NO_VERTICAL_SCROLL | MainScreen.NO_HORIZONTAL_SCROLL);

    VerticalFieldManager verticalFieldManager = new VerticalFieldManager(Manager.NO_VERTICAL_SCROLL | Manager.NO_HORIZONTAL_SCROLL | 
        Manager.USE_ALL_HEIGHT | Manager.USE_ALL_WIDTH ) ;

    BasicEditField bef = new BasicEditField("To: ","",50,BasicEditField.FILTER_EMAIL);

    //The LabelField will show up through the transparent image.
    LabelField labelField = new LabelField("This is a label");

    HorizontalFieldManager horizontalFieldManager = new HorizontalFieldManager(HorizontalFieldManager.USE_ALL_WIDTH | HorizontalFieldManager.USE_ALL_HEIGHT);
    //A bitmap field with a transparent image.
    //The background image will show up through the transparent BitMapField image.
    ImageButtonField bitmapField = new ImageButtonField(Bitmap.getBitmapResource("pimdemo_jde.png"),  Field.FIELD_BOTTOM);
        horizontalFieldManager.add(bitmapField);
    BitmapField bitmapField1 = new BitmapField(Bitmap.getBitmapResource("attachmentdemo_jde.png"), Field.FIELD_BOTTOM);
    horizontalFieldManager.add(bitmapField1);

    //Add the fields to the manager.
   // verticalFieldManager.add(bef);
   // verticalFieldManager.add(labelField);
    verticalFieldManager.add(horizontalFieldManager);

    //Add the manager to the screen.
    this.add(verticalFieldManager);

1 Ответ

1 голос
/ 18 марта 2012

В вашем классе нет конструктора, который позволял бы вам это делать:

ImageButtonField ImageButtonField bitmapField = new ImageButtonField(Bitmap.getBitmapResource("pimdemo_jde.png"), Field.FIELD_BOTTOM);

Для конструктора, который вы пытаетесь использовать, требуется экземпляр Bitmap и примитив long (для поля.FIELD_BOTTOM).Вы должны добавить конструктор со следующей подписью, чтобы ваш код работал:

public ImageButtonField (Bitmap bitmap, long style){
    super(bitmap, style);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...