我有一个应用程序,我下载图像和数据并在ListField上渲染它们。图像显示在左侧,文本显示在右侧的行中。 要显示的行显示名称,电话号码等信息,它们非常多。这里的问题是listfield只显示三行(占用与左边图像大小相同的高度),其余5行不显示。我怎么做才能使行高不限于图像的高度?目标操作系统从BB 0S 5开始。
绘制listrow代码是:
public void drawListRow(ListField list,Graphics g,int index,int y,int w)
{
Items itemToDraw=(Items)this.get(list,index);
String name=itemToDraw.getName();
String desc=itemToDraw.getDescription();
Bitmap bmp=itemToDraw.getBmp();
g.drawBitmap(0,y,bmp.getWidth(),bmp.getHeight(),bmp,0,0);
int ypos=12+y;
int wd=bmp.getWidth();
int h=bmp.getHeight();
int fht=this.getFont().getHeight();
int xpos=wd+3;
g.drawText("Name: "+itemToDraw._itemName,xpos,ypos,DrawStyle.HCENTER,w-wd);
ypos+=fht;
g.drawText("Number: "+itemToDraw._Number,xpos,ypos,DrawStyle.ELLIPSIS,w-wd);
ypos+=fht;
g.drawText("Company: "+itemToDraw._company,xpos,ypos);
ypos+=fht;
g.drawText("Year: "+itemToDraw._year,xpos,ypos);
ypos+=fht;
g.drawText("Occupation "+itemToDraw._occupation,xpos,ypos);
ypos+=fht;
g.drawText("Employer: "+itemToDraw._employer,xpos,ypos);
ypos+=fht;
g.drawText("Department: "+itemToDraw._dept,xpos,ypos);
ypos+=fht;
g.drawText("Location: "+itemToDraw._location,xpos,ypos);
ypos+=fht;
g.drawText("Email: "+itemToDraw._email,xpos,ypos);
ypos+=fht;
g.drawText("Phone: "+itemToDraw._phone,xpos,ypos);
ypos+=fht;
g.drawText("Website: "+itemToDraw._website,xpos,ypos);
int drawColor=Color.BLACK;
g.setColor(drawColor);
int yPos=y+list.getRowHeight()-5;
g.drawLine(0,yPos,w,yPos);
}
答案 0 :(得分:0)
drawListRow
调用绘制每个列表项,它不会影响显示列表项的数量。
当您填充了要显示的项目列表/数组时,请调用名称为setSize(int itemsQty)
的ListField
实例方法
确保传递给itemsQty
方法的setSize
具有正确的值。
此外,请注意,您可以缩小大图像,使列表看起来更好。
检查Bitmap class的scaleXXX
方法。