Как я буду делать этот тип списка в Blackberry? - PullRequest
2 голосов
/ 16 февраля 2012

Я хочу создать этот тип настраиваемого списка.

enter image description here

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

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Вы можете использовать " Создать пользовательское поле списка - Изменить цвет подсветки при прокрутке " из блога berrytutorials, чтобы узнать, как создать listField. В методе drawListRow вы можете получить графический объект и нарисовать строку списка, как хотите.

Используйте graphics.drawText() для рисования текста, graphics.drawBitmap() для рисования изображений и т. Д.

0 голосов
/ 16 февраля 2012
This was my requirement Hence I did not go for the listField option...
Try it may be helpful..

listVFM = new VerticalFieldManager();

rowHFM = new HorizontalFieldManager[10];

imageBitmapField = new BitmapField[10];

img_bitmap = Bitmap.getBitmapResource("image.png");

descriptionLabel = new LabelField[10];

discountLabel = new LabelField[10];

goButton = new RoundedCustomButtonField[10];

goSelectBitmap = Bitmap.getBitmapResource("btnSelectGo.png");

goUnselectBitmap = Bitmap.getBitmapResource("btnUnselectGo.png");


row_height = 90;

int j=0;

int row_count = 0;

for(int i=0; i<10; i++) {

    rowHFM[row_count] = new HorizontalFieldManager(HorizontalFieldManager.USE_ALL_HEIGHT) {

        protected void sublayout(int maxWidth, int maxHeight) {

            int displayWidth = Display.getWidth();
            int displayHeight = 80;

            super.sublayout( displayWidth, displayHeight);
            setExtent( displayWidth, displayHeight);
        }

    };


    rowHFM[row_count].setPadding(2, 2, 2, 2);

    imageBitmapField[row_count] = new BitmapField(img_bitmap, BitmapField.FIELD_VCENTER | BitmapField.VCENTER |                     BitmapField.USE_ALL_HEIGHT) {

        protected void layout(int maxWidth, int maxHeight)
        {
            int displayWidth = 85;
            int displayHeight = 70;

            super.layout( displayWidth, displayHeight);
            setExtent( displayWidth, displayHeight);
        }   
    };

    imageBitmapField[row_count].setPadding(0,0,0,4);


    descriptionLabel[row_count] = new LabelField("Description.....") {

        protected void layout(int maxWidth, int maxHeight) {

            int displayWidth = (int)(Display.getWidth()/2.6);
            int displayHeight = maxHeight;

            super.layout( displayWidth, displayHeight);
            setExtent( displayWidth, displayHeight);
        }   

    };


    descriptionLabel[row_count].setPadding(5,0,0,2);

    discountLabel[row_count] = new LabelField(discountRate + "%") {

        protected void layout(int maxWidth, int maxHeight) {

            int displayWidth = (int)(Display.getWidth()/4.8);
            int displayHeight = maxHeight;

            super.layout( displayWidth, displayHeight);
            setExtent( displayWidth, displayHeight);
        }   

    };


    discountLabel[row_count].setPadding(5,0,0,2);

    goButton[row_count] = new CustomButtonField("go",goSelectBitmap ,goUnselectBitmap, Field.FIELD_VCENTER              |Field.USE_ALL_HEIGHT);



    goButton[row_count].setPadding(0,0,0,2);

    goButton[row_count].setChangeListener(new FieldChangeListener() {

        public void fieldChanged(Field field, int context) {

            //code....
        }

    });

    rowHFM[row_count].add(imageBitmapField[row_count]);

    rowHFM[row_count].add(descriptionLabel[row_count]);

    rowHFM[row_count].add(discountLabel[row_count]);

    rowHFM[row_count].add(goButton[row_count]);

    listVFM.add(rowHFM[row_count]);

    row_count++;

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