⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 midp2layoutview.java

📁 j2me polish学习的经典代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    case Item.LAYOUT_CENTER :                        x = (remainingWidth >> 1);                        break;                    case Item.LAYOUT_RIGHT :                        x = remainingWidth;                        break;                }                for (int i = 0; i < this.currentRow.size(); i++) {	                rowItem = (RowItem) this.currentRow.get(i);	                rowItem.x = x;	                x += rowItem.width + this.paddingHorizontal; // Next Item		                /**	                 * Vertical Layout starts here	                 */	                int layout = rowItem.item.getLayout();	                rowItem.y = this.contentHeight;	                if (Item.LAYOUT_VEXPAND == (layout & Item.LAYOUT_VEXPAND)) {                        // Vertical expansion is required, ignore all other                        rowItem.height = this.rowHeight;	                } else {                        layout = (layout & LAYOUT_VERTICAL);                        switch (layout) {	                        case Item.LAYOUT_VCENTER :	                            rowItem.y += ((this.rowHeight - rowItem.height) >> 1);	                            break;                            case Item.LAYOUT_BOTTOM :                                rowItem.y += this.rowHeight - rowItem.height;                                break;                        }	                }                }                if (this.allRows.size() == 0) {	                // Adding first row	                this.contentHeight += this.rowHeight;                } else {                    this.contentHeight += this.paddingVertical + this.rowHeight;                }                if ( this.rowWidth > this.contentWidth ) {	                this.contentWidth = this.rowWidth;                }                // Get ready for next row                this.allRows.add(this.currentRow);                this.rowHeight = this.rowWidth = 0;                this.currentRow = new ArrayList();        }        /*         * (non-Javadoc)         *          * @see de.enough.polish.ui.ContainerView#paintContent(int, int, int, int,         *      javax.microedition.lcdui.Graphics)         */        protected void paintContent(int x, int y, int leftBorder, int rightBorder,                        Graphics g)         {                for (int i = 0; i < this.allRows.size(); i++) {                        ArrayList row = (ArrayList) this.allRows.get(i);                        for (int j = 0; j < row.size(); j++) {                                RowItem rowItem = (RowItem) row.get(j);                                int xItem = x + rowItem.x;                                rowItem.item.paint(xItem,                                 		y + rowItem.y, 										Math.max(leftBorder, xItem), 										Math.min(rightBorder, xItem + rowItem.width), 										g );                        }                }        }        /*         * (non-Javadoc)         *          * @see de.enough.polish.ui.ContainerView#getNextItem(int, int)         */        protected Item getNextItem(int keyCode, int gameAction) {                if (this.allRows.size() == 0)                        return null;                Item[] items = this.parentContainer.getItems();                if (this.focusedIndex >= items.length) {                        for(int i=0; i < items.length; i++) {                                if(items[i].appearanceMode != Item.PLAIN) {                                        focusItem(i, items[i]);                                        return items[i];                                }                        }                }                // Find out where the current focused item is.                Item focusedItem = items[this.focusedIndex];                int rowIndex = 0;                //int colIndex = 0;                int xOffset = 0;                for (int i = 0; i < this.allRows.size(); i++) {                        ArrayList row = (ArrayList) this.allRows.get(i);                        for (int j = 0; j < row.size(); j++) {                                RowItem rowItem = (RowItem) row.get(j);                                if (rowItem.item == focusedItem) {                                        rowIndex = i;                                        //colIndex = j;                                        xOffset = rowItem.x + (rowItem.width >> 1);                                        i = 10000;                                        break;                                }                        }                }                Item item = null;                if (gameAction == Canvas.UP && keyCode != Canvas.KEY_NUM2) {                        // Going Up                        if (this.horizontalOffset == -1) {                        	this.horizontalOffset = xOffset;                        }                        while (rowIndex > 0) {                                rowIndex--;                                item = getItemByHorizontalOffset((ArrayList) this.allRows                                                .get(rowIndex), this.horizontalOffset);                                if(item != null) break;                        }                        if(item == null){                                // Can't go up any more                        }                } else if (gameAction == Canvas.DOWN && keyCode != Canvas.KEY_NUM8) {                        // Going Down                        if (this.horizontalOffset == -1) {                        	this.horizontalOffset = xOffset;                        }                                                while(rowIndex < (this.allRows.size() - 1)) {                                rowIndex++;                                item = getItemByHorizontalOffset((ArrayList) this.allRows                                                .get(rowIndex), this.horizontalOffset);                                if(item != null) break;                        }                                                 if(item == null){                                // Can't go Down any more                        }                } else if (gameAction == Canvas.RIGHT && keyCode != Canvas.KEY_NUM6) {                        // Going Right                	this.horizontalOffset = -1; // Reset vertical movement position                        item = getNextFocusableItem(items, true, 1, false);                } else if (gameAction == Canvas.LEFT && keyCode != Canvas.KEY_NUM4) {                        // Going Left                		this.horizontalOffset = -1; // Reset vertical movement position                        item = getNextFocusableItem(items, false, 1, false);                }                                // Finally set the focus if it has been found                if (item != null) {                        for (int i = 0; i < items.length; i++) {                                if (items[i] == item) {                                        focusItem(i, item);                                        break;                                }                        }                }                else {                        if (this.focusedIndex >= items.length) {                                for(int i=0; i < items.length; i++) {                                        if(items[i].appearanceMode != Item.PLAIN) {                                                focusItem(i, items[i]);                                                return items[i];                                        }                                }                        }                }                return item;        }        private Item getItemByHorizontalOffset(ArrayList row, int xOffset) {                Item item = null;                RowItem rowItem = null;                int distance = 60000;                int itemOffset = 0;                int itemDistance = 0;                for (int i = 0; i < row.size(); i++) {                        rowItem = (RowItem) row.get(i);                        if (rowItem.item.appearanceMode != Item.PLAIN) {                                itemOffset = rowItem.x + (rowItem.width >> 1);                                itemDistance = xOffset - itemOffset;                                if(itemDistance < 0) itemDistance = -itemDistance;                                if (itemDistance < distance) {                                        distance = itemDistance;                                        item = rowItem.item;                                }                        }                }                return item;        }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -