отображает только текст, но не изображение - PullRequest
0 голосов
/ 09 февраля 2011

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

class TaskListField extends MainScreen implements ListFieldCallback {
         private Vector rows;
         private Bitmap p1;
ListField list;
         TableRowManager row;
         public TaskListField() {
          super();
          list=new ListField() {

              protected void drawFocus(Graphics graphics, boolean on) {
              }

};
          list.setRowHeight(40);
          list.setEmptyString("Hooray, no tasks here!", DrawStyle.HCENTER);
          list.setCallback(this);

          p1 = Bitmap.getBitmapResource("res/images/10.png");
 rows = new Vector();

          for (int x = 1; x < 13; x++) {
            row = new TableRowManager();
             LabelField task = new LabelField("" + String.valueOf(x),
             DrawStyle.ELLIPSIS);
   row.add(task);
           row.add(new BitmapField(p1));
  rows.addElement(row);
          }
          list.setSize(rows.size());
add(list);
         }

         // ListFieldCallback Implementation
         public void drawListRow(ListField listField, Graphics g, int index, int y,
           int width) {

          TableRowManager rowManager = (TableRowManager) rows
            .elementAt(index);
          rowManager.drawRow(g, 0, y, width, list.getRowHeight());
         }

         private class TableRowManager extends Manager {
          public TableRowManager() {
           super(0);
          }
  public void drawRow(Graphics g, int x, int y, int width, int height) {

           layout(width, height);


           setPosition(x, y);


           g.pushRegion(getExtent());

           // Paint this manager's controlled fields.
           subpaint(g);

           g.setColor(0x00CACACA);
           g.drawLine(0, 0, getPreferredWidth(), 0);

           // Restore the graphics context.
           g.popContext();
          }


          protected void sublayout(int width, int height) {

           int preferredWidth = getPreferredWidth();


           Field field = getField(0);
           layoutChild(field, 30, 30);
           setPositionChild(field, 0, 0);


          field = getField(1);
           layoutChild(field, 40, 25);
           setPositionChild(field, 120, 10);
  setExtent(preferredWidth, getPreferredHeight());
          }

          // The preferred width of a row is defined by the list renderer.
          public int getPreferredWidth() {
           return Graphics.getScreenWidth();
          }

          // The preferred height of a row is the "row height" as defined in the
          // enclosing list.
          public int getPreferredHeight() {
           return list.getRowHeight();
          }
         }

         public Object get(ListField listField, int index) {
          // TODO Auto-generated method stub
          return null;
         }

         public int getPreferredWidth(ListField listField) {
          // TODO Auto-generated method stub
          return 0;
         }

         public int indexOfList(ListField listField, String prefix, int start) {
          // TODO Auto-generated method stub
          return 0;
         }

Ответы [ 3 ]

1 голос
/ 24 января 2012

Путь к изображению не обязателен, как вы говорите

p1 = Bitmap.getBitmapResource (" res/images/10.png ");

нужно только

p1 = Bitmap.getBitmapResource (" 10.png ");
0 голосов
/ 12 февраля 2011

Может ли LabelField использовать всю ширину экрана (это происходит в определенных ситуациях)? Когда вы только устанавливаете изображение без установки метки, изображение показывает?

0 голосов
/ 10 февраля 2011

Вы уверены, что растровое изображение не равно нулю? Сначала я бы это проверил - возможно, он не находит ресурс.

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