public List<Integer> getSelectedBlueNumbers() { List<Integer> blueNumbers = new ArrayList<Integer>(); // 遍历选号行集合,获取被选择篮球号码集合 SelectRow selectRow = (SelectRow) viewRows.get(viewRowNum - 1); for (int colum_i = Row.redColumNum + 1; colum_i < Row.columNum; colum_i++) { NumberCell numberCell = (NumberCell) selectRow.getRowCells().get(colum_i); if (numberCell.isTouched) { int number = numberCell.getNumber(); blueNumbers.add(number); } } return blueNumbers; }
private void updateSelectNumberShow() { StringBuffer selectedNumber = new StringBuffer("已选:"); SelectRow selectRow = (SelectRow) viewRows.get(viewRowNum - 1); // 最后一个红球号码的位置标识 int redEndIndex = 0; boolean isFirstBlueBall = true; for (int colum_i = 1; colum_i < Row.columNum; colum_i++) { NumberCell numberCell = (NumberCell) selectRow.getRowCells().get(colum_i); if (numberCell.isTouched) { // 如果是第一个篮球,获标志位,给后面字体标颜色使用 if (colum_i >= Row.redColumNum && isFirstBlueBall) { redEndIndex = selectedNumber.length(); isFirstBlueBall = false; } int number = numberCell.getNumber(); selectedNumber.append(formatNumberToTwoPlace(number) + ","); } } selectedNumber.deleteCharAt(selectedNumber.length() - 1); SpannableStringBuilder styleBuilder = new SpannableStringBuilder(selectedNumber); // 如果有红球,则设置控球选号为红色 if (selectedNumber.length() > 3) { styleBuilder.setSpan( new ForegroundColorSpan(Color.RED), 3, selectedNumber.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); } // 如果有篮球,在设置篮球为蓝色 if (redEndIndex != 0) { styleBuilder.setSpan( new ForegroundColorSpan(Color.BLUE), redEndIndex, selectedNumber.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); } selectedNumbersTextView.setText(styleBuilder); }
private void onDrawViewBackground(Canvas canvas) { // 遍历行集合,绘制行背景 for (int row_i = 0; row_i < viewRowNum; row_i++) { Row chileRow = viewRows.get(row_i); if (chileRow instanceof NumberRow) { ((NumberRow) chileRow).onDrawBackground(canvas); } else if (chileRow instanceof SelectRow) { ((SelectRow) chileRow).onDrawBackground(canvas); } } }