2011-02-09 55 views
0

私はlistfield、bitmapfield、labelフィールドを以下のようにコードを作成しました。これを実行すると、リストフィールド行にテキストのみが表示されます画像 私は間違いをしたところ知っているので、していないが、plzは、いずれかが、私は任意のヘルプ画像は表示されませんが、画像は表示されません

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; 
     } 

答えて

0

あなたはビットマップがnullでないよろしいのための間違い 感謝をしたところ、私が知るのに役立ちますか?私は最初にそれをチェックします - おそらくそれはリソースを見つけることができません。

+0

を必要とする必要はありません。そのビットマップがヌルで、名前が正しく設定されていて、ビットマップがresフォルダのサブフォルダにある場合は、そのサブフォルダをプロジェクトに追加する必要があります。フォルダを右クリックし、パスの作成...を選択します。 hth –

0

LabelFieldが画面の幅全体を占めることができますか(特定の状況ではそうなります)。ラベルを設定せずに画像を設定すると、画像は表示されますか?

1

イメージパスは、あなたがそれを置くよう

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

のみだけ(私はリソースを見つけることではないとの問題を抱えていたので)エリックの答えに追加する

p1 = Bitmap.getBitmapResource (" 10.png "); 
関連する問題