我想製作這種類型的自定義列表。我如何在黑莓中製作這種類型的列表?
我有一個紅色的彩色圖像&我必須適應未來未來5日n個電流月紅圖像&近到我要添加四個文本。我有那張白色的背景圖片。 如何在黑莓中做到這一點。請幫助我...
我想製作這種類型的自定義列表。我如何在黑莓中製作這種類型的列表?
我有一個紅色的彩色圖像&我必須適應未來未來5日n個電流月紅圖像&近到我要添加四個文本。我有那張白色的背景圖片。 如何在黑莓中做到這一點。請幫助我...
您可以使用berrytutorials博客中的「Create a Custom Listfield - Change Highlight Color when Scrolling」來了解如何創建listField
。在drawListRow
方法中,您可以獲取圖形對象並根據需要繪製列表行。
使用graphics.drawText()
繪製文本,graphics.drawBitmap()
繪製圖片等
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++;
}
這不是幾個原因一個好的解決方案。說如果我有一百行,它會創建幾百個領域和經理,這將影響應用程序的性能。此外,如果用於像珍珠等小屏幕的設備,這將失敗慘敗。 – user1121332 2012-02-16 10:46:35
@ user1121332:是的,我肯定同意..但對我來說,要求不是100條記錄......並且在使用ListField時遇到了一些問題。因此,去了這個方法。 – 2012-02-16 11:40:15