将canvas创建高级菜单(4)
来源:未知 责任编辑:责任编辑 发表时间:2013-12-18 11:34 点击:次
| g.BOTTOM);
canvas.flushGraphics();
// draw menu options
if (menuOptions != null) {
//确定菜单的最大宽度、最大高度
int menuMaxWidth = 0;
int menuMaxHeight = 0;
int currentWidth = 0;
for (int i = 0; i < menuOptions.length; i++) {
currentWidth = font.stringWidth(menuOptions[i]);
if (currentWidth > menuMaxWidth) {
menuMaxWidth = currentWidth;
}
menuMaxHeight += fontHeight + padding;
}
menuMaxWidth += 6 * padding;
g.setColor(bgColor);
g.fillRect(0, // x
height - fontHeight - 2 * padding - menuMaxHeight, // y
menuMaxWidth, menuMaxHeight);
g.setFont(font);
int menuOptionX = padding;
int menuOptionY = height - fontHeight - 2 * padding - menuMaxHeight
+ padding;
for(int i=0; i<=menuOptions.length; i++) {
g.setColor(highLight);
int lineOptionY= height-fontHeight - 2 * padding- menuMaxHeight+i*(fontHeight + padding);
g.drawLine(0, lineOptionY,
menuMaxWidth-1, lineOptionY);
}
for (int i = 0; i < menuOptions.length; i++) {
if (i != selectedOptionIndex) {
// draw unselected menu option
g.setColor(defaultFontColor); // black
g.drawString(menuOptions[i], menuOptionX, menuOptionY, g.LEFT
| g.TOP);
}
else {
// draw selected menu option
g.setColor(highLight);
int highOptionY=height - fontHeight - 2 * padding - menuMaxHeight+i*(fontHeight + padding);
g.fillRect(0,highOptionY,menuMaxWidth,fontHeight + padding);
g.setColor(selectedFontColor);
g.drawString(menuOptions[i], menuOptionX, menuOptionY, g.LEFT
| g.TOP);
相关新闻>>
- 发表评论
-
- 最新评论 更多>>