使用单元格在 GridView 中绘制字母

Drawing letters in a GridView using cells

我想在我的 gridview(基本上充当 LED 板)上画字母。我正在尝试从用户那里获取输入字符串并在 gridview 中绘制该字符串,如下所示。 gridview 大小固定为两个 6x5 板。我需要以框架似乎从右向左移动的方式绘制该字符串(基本上每 2 秒间隔刷新一次布局)。我无法理解如何通过输入字符串在 gridview 单元格上绘制这些字母。任何类型的参考和链接也对我有用。

快照 Link:http://imgur.com/pb3lfCv

在下次更新时,列应该向左移动一列,在这种情况下,我们应该能够看到第一个字母的 4/5 和完整的第二个字母,第三个字母将从右侧开始输入..

2 秒间隔后的快照:http://imgur.com/Ue8y0OC

2 秒间隔后的快照:http://imgur.com/mebRsuM

也许可以在 2 秒的间隔内做类似的事情:

int i = currentCharacter;
//code for left char
switch(str.charAt(i)){
 case "A":
 //Code for the letter A
break;
 case "B":
 //Code for the letter B
break;
...
}
//code for right char
switch(str.charAt(i+1)){
 case "A":
 //Code for the letter A
break;
 case "B":
 //Code for the letter B
break;
...
}
currentCharacter++;

您可以为彩色立方体提供 ID,只需定义颜色即可。因此,例如字母 'S' 就像:

cube1.setBackgroundColor(Color.RED);
cube2.setBackgroundColor(Color.GREEN);
cube3.setBackgroundColor(Color.GREEN);
cube4.setBackgroundColor(Color.GREEN);
cube5.setBackgroundColor(Color.RED);
cube6.setBackgroundColor(Color.RED);
cube7.setBackgroundColor(Color.GREEN);
cube8.setBackgroundColor(Color.RED);
cube9.setBackgroundColor(Color.RED);
cube10.setBackgroundColor(Color.RED);
//and so one ...

如果网格是这样的:

01 02 03 04 05

06 07 08 09 10

11 12 13 14 15 ...

这只是一个想法,但它可能对你有帮助:D

嘿,我得到了上面的解决方案 - 我自己开发了一个 class,它有一个将字符作为输入的函数,returns 它在 6*6 矩阵和长度字段中的显示模式有没有确保它在显示时需要多少宽度。使用此 jar 为整个字符串创建一个二维数组,并从一端使用 window 屏幕大小遍历该数组。这是 class:

的代码
public class TextPat {
    public int length;
    public int[][] flag;
    public void getFlag(char data) {
        switch (data){
            case 'A':
            {
             length=5;
                flag=new int[][]{
                        {0,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0}};
            }break;

            case 'B':
            {
                length=5;
                flag=new int[][]{
                        {1,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,0,0,0}};
            }break;

            case 'C':
            {
                length=5;
                flag=new int[][]{
                        {0,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,0,0,0}};
            }break;

            case 'D':
            {
                length=5;
                flag=new int[][]{
                        {1,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,0,0,0}};
            }break;

                case 'E':
            {
                length=5;
                flag=new int[][]{
                        {1,1,1,1,0,0},
                        {1,0,0,0,0,0},
                        {1,1,1,1,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,1,1,1,0,0}};
            }break;
            case 'F':
            {
                length=5;
                flag=new int[][]{
                        {1,1,1,1,0,0},
                        {1,0,0,0,0,0},
                        {1,1,1,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;
            case 'G':
            {
                length=5;
                flag=new int[][]{
                        {0,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,0,0,0},
                        {1,0,1,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,0,0,0}};
            }break;
            case 'H':
            {
                length=5;
                flag=new int[][]{
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0}};
            }break;
            case 'I':
            {
                length=2;
                flag=new int[][]{
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;
            case 'J':
            {
                length=5;
                flag=new int[][]{
                        {1,1,1,1,0,0},
                        {0,0,0,1,0,0},
                        {0,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,0,0,0}};
            }break;
            case 'K':
            {
                length=6;
                flag=new int[][]{
                        {1,0,0,1,0,0},
                        {1,0,1,0,0,0},
                        {1,1,0,0,0,0},
                        {1,0,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,0,1,0}};
            }break;
            case 'L':
            {
                length=4;
                flag=new int[][]{
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,1,1,0,0,0}};
            }break;
            case 'M':
            {
                length=6;
                flag=new int[][]{
                        {1,1,0,1,1,0},
                        {1,1,1,1,1,0},
                        {1,0,1,0,1,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0}};
            }break;
            case 'N':
            {
                length=6;
                flag=new int[][]{
                        {1,0,0,0,1,0},
                        {1,1,0,0,1,0},
                        {1,1,1,0,1,0},
                        {1,0,1,1,1,0},
                        {1,0,0,1,1,0},
                        {1,0,0,0,1,0}};
            }break;
            case 'O':
            {
                length=5;
                flag=new int[][]{
                        {0,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,0,0,0}};
            }break;
            case 'P':
            {
                length=5;
                flag=new int[][]{
                        {1,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;

            case 'Q':
            {
                length=6;
                flag=new int[][]{
                        {0,1,1,1,0,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {0,1,1,1,0,0},
                        {0,0,0,0,1,0}};
            }break;

            case 'R':
            {
                length=5;
                flag=new int[][]{
                        {1,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,0,0,0},
                        {1,0,1,0,0,0},
                        {1,0,0,1,0,0}};
            }break;

            case 'S':
            {
                length=5;
                flag=new int[][]{
                        {0,1,1,1,0,0},
                        {1,0,0,0,0,0},
                        {0,1,1,0,0,0},
                        {0,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,0,0,0}};
            }break;

            case 'T':
            {
                length=4;
                flag=new int[][]{
                        {1,1,1,0,0,0},
                        {0,1,0,0,0,0},
                        {0,1,0,0,0,0},
                        {0,1,0,0,0,0},
                        {0,1,0,0,0,0},
                        {0,1,0,0,0,0}};
            }break;

            case 'U':
            {
                length=5;
                flag=new int[][]{
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,1,0,0}};
            }break;

            case 'V':
            {
                length=6;
                flag=new int[][]{
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {0,1,0,1,0,0},
                        {0,0,1,0,0,0}};
            }break;

            case 'W':
            {
                length=6;
                flag=new int[][]{
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {1,0,1,0,1,0},
                        {1,1,1,1,1,0},
                        {0,1,0,1,0,0}};
            }break;

            case 'X':
            {
                length=6;
                flag=new int[][]{
                        {1,0,0,0,1,0},
                        {0,1,0,1,0,0},
                        {0,0,1,0,0,0},
                        {0,1,0,1,0,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0}};
            }break;

            case 'Y':
            {
                length=6;
                flag=new int[][]{
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {0,1,0,1,0,0},
                        {0,0,1,0,0,0},
                        {0,0,1,0,0,0},
                        {0,0,1,0,0,0}};
            }break;

            case 'Z':
            {
                length=5;
                flag=new int[][]{
                        {1,1,1,1,0,0},
                        {0,0,0,1,0,0},
                        {0,0,1,0,0,0},
                        {0,1,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,1,1,1,0,0}};
            }break;

            case 'a':
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {1,1,1,0,0,0},
                        {0,0,0,1,0,0},
                        {0,1,1,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,1,0,0}};
            }break;

            case 'b':
            {
                length=5;
                flag=new int[][]{
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,0,0,0}};
            }break;

            case 'c':
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,1,1,1,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {0,1,1,1,0,0}};
            }break;

            case 'd':
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,1,0},
                        {0,0,0,1,0,0},
                        {0,0,0,1,0,0},
                        {0,1,1,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,1,0,0}};
            }break;

            case 'e':
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,1,0,0},
                        {1,0,0,0,0,0},
                        {0,1,1,1,0,0}};
            }break;

            case 'f':
            {
                length=5;
                flag=new int[][]{
                        {0,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,0,0,0},
                        {1,1,1,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;

            case 'g':
            {
                length=5;
                flag=new int[][]{
                        {0,1,1,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,1,0,0},
                        {0,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,0,0,0}};
            }break;
            case 'h':
            {
                length=5;
                flag=new int[][]{
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0}};
            }break;

            case 'i':
            {
                length=2;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;

            case 'j':
            {
                length=4;
                flag=new int[][]{
                        {0,0,1,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,1,0,0,0},
                        {0,0,1,0,0,0},
                        {1,0,1,0,0,0},
                        {0,1,0,0,0,0}};
            }break;

            case 'k':
            {
                length=5;
                flag=new int[][]{
                        {1,0,0,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,1,0,0,0},
                        {1,1,0,0,0,0},
                        {1,0,1,0,0,0},
                        {1,0,0,1,0,0}};
            }break;
            case 'l':
            {
                length=2;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;

            case 'm':
            {
                length=6;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,1,0,1,0,0},
                        {1,0,1,0,1,0},
                        {1,0,1,0,1,0},
                        {1,0,0,0,1,0}};
            }break;

            case 'n':
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {1,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0}};
            }break;

            case 'o':
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,0,0,0}};
            }break;
            case 'p':
            {
                length=5;
                flag=new int[][]{
                        {1,0,0,0,0,0},
                        {1,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;

            case 'q':
            {
                length=6;
                flag=new int[][]{
                        {0,1,1,0,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,1,0,0},
                        {0,0,0,1,0,0},
                        {0,0,0,1,0,0},
                        {0,0,0,1,1,0}};
            }break;

            case 'r':
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {1,0,1,1,0,0},
                        {1,1,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;

            case 's':
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,1,1,1,0,0},
                        {1,0,0,0,0,0},
                        {0,1,1,0,0,0},
                        {0,0,0,1,0,0},
                        {1,1,1,0,0,0}};
            }break;
            case 't':
            {
                length=5;
                flag=new int[][]{
                        {0,1,0,0,0,0},
                        {0,1,0,0,0,0},
                        {1,1,1,0,0,0},
                        {0,1,0,0,0,0},
                        {0,1,0,1,0,0},
                        {0,1,1,0,0,0}};
            }break;

            case 'u':
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {1,1,1,1,0,0}};
            }break;

            case 'v':
            {
                length=6;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {0,1,0,1,0,0},
                        {0,0,1,0,0,0}};
            }break;

            case 'w':
            {
                length=6;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {1,0,1,0,1,0},
                        {0,1,0,1,0,0}};
            }break;
            case 'x':
            {
                length=6;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {1,0,0,0,1,0},
                        {0,1,0,1,0,0},
                        {0,0,1,0,0,0},
                        {0,1,0,1,0,0},
                        {1,0,0,0,1,0}};
            }break;

            case 'y':
            {
                length=5;
                flag=new int[][]{
                        {1,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,1,0,0},
                        {0,0,0,1,0,0},
                        {1,0,0,1,0,0},
                        {0,1,1,0,0,0}};
            }break;

            case 'z':
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {1,1,1,1,0,0},
                        {0,0,1,0,0,0},
                        {0,1,0,0,0,0},
                        {1,1,1,1,0,0}};
            }break;

            case '.':
            {
                length=2;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;
            case ',':
            {
                length=3;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,1,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;

            case '!':
            {
                length=2;
                flag=new int[][]{
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {1,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;

            case '?':
            {
                length=6;
                flag=new int[][]{
                        {0,1,1,1,0,0},
                        {1,0,0,0,1,0},
                        {0,0,1,1,0,0},
                        {0,0,1,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,1,0,0,0}};
            }break;

            case '1':
            {
                length=6;
                flag=new int[][]{
                        {0,1,1,0,0,0},
                        {1,0,1,0,0,0},
                        {0,0,1,0,0,0},
                        {0,0,1,0,0,0},
                        {0,0,1,0,0,0},
                        {1,1,1,1,1,0}};
            }break;
            case '2':
            {
                length=6;
                flag=new int[][]{
                        {0,1,1,1,0,0},
                        {1,0,0,0,1,0},
                        {0,0,0,0,1,0},
                        {1,1,1,1,0,0},
                        {1,0,0,0,0,0},
                        {1,1,1,1,1,0}};
            }break;

            case '3':
            {
                length=6;
                flag=new int[][]{
                        {0,1,1,1,0,0},
                        {1,0,0,0,1,0},
                        {0,0,1,1,0,0},
                        {0,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {0,1,1,1,0,0}};
            }break;

            case '4':
            {
                length=6;
                flag=new int[][]{
                        {0,0,0,1,0,0},
                        {0,0,1,1,0,0},
                        {0,1,0,1,0,0},
                        {1,1,1,1,1,0},
                        {0,0,0,1,0,0},
                        {0,0,0,1,0,0}};
            }break;

            case '5':
            {
                length=6;
                flag=new int[][]{
                        {1,1,1,1,1,0},
                        {1,0,0,0,0,0},
                        {1,1,1,1,0,0},
                        {0,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {0,1,1,1,0,0}};
            }break;

            case '6':
            {
                length=6;
                flag=new int[][]{
                        {0,1,1,1,1,0},
                        {1,0,0,0,0,0},
                        {1,1,1,1,0,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {0,1,1,1,0,0}};
            }break;

            case '7':
            {
                length=6;
                flag=new int[][]{
                        {1,1,1,1,1,0},
                        {0,0,0,0,1,0},
                        {0,0,0,1,0,0},
                        {0,0,1,0,0,0},
                        {0,1,0,0,0,0},
                        {1,0,0,0,0,0}};
            }break;

            case '8':
            {
                length=6;
                flag=new int[][]{
                        {0,1,1,1,0,0},
                        {1,0,0,0,1,0},
                        {0,1,1,1,0,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {0,1,1,1,0,0}};
            }break;

            case '9':
            {
                length=6;
                flag=new int[][]{
                        {0,1,1,1,0,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {0,1,1,1,1,0},
                        {0,0,0,0,1,0},
                        {1,1,1,1,0,0}};
            }break;
            case '0':
            {
                length=6;
                flag=new int[][]{
                        {0,1,1,1,0,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {1,0,0,0,1,0},
                        {0,1,1,1,0,0}};
            }break;

            default:
            {
                length=5;
                flag=new int[][]{
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0}};
            }break;
        }
    }
}