2011-03-03 121 views
0
public class TestEye extends MainScreen { 

    LabelField l1,l2; 
    RichTextField rch; 
    VerticalFieldManager vfm; 
    Font myfont1; 
    String word[]={"F D","N P","U H","F Z","K R","U V","Z E","E K","P Z","V N"}; 

public TestEye() 
{ 
     vfm=new VerticalFieldManager(VerticalFieldManager.USE_ALL_WIDTH|VerticalFieldManager.USE_ALL_HEIGHT) 
      { 
      protected void paint(Graphics graphics) 
         { 
          graphics.setColor(Color.BLACK); 
          graphics.fillRect(0, 0, Display.getHorizontalResolution(), Display.getVerticalResolution()); 
          super.paint(graphics); 
         } 
      }; 
     l1=new LabelField("----------------",Field.USE_ALL_WIDTH|Field.USE_ALL_HEIGHT); 
     l2=new LabelField("----------------",Field.USE_ALL_WIDTH|Field.USE_ALL_HEIGHT); 
     rch=new RichTextField() 
      { 


       public void paint(Graphics g) 
       { 
         g.setBackgroundColor(Color.BLACK); 
         g.setColor(Color.WHITE); 
          super.paint(g); 
       } 
      }; 
     vfm.add(l1); 
     vfm.add(l2); 
     vfm.add(rch); 
     add(vfm); 
     System.out.println("::::::::::::::::end test eye:::::::::::::::"); 
     push(word); 
    } 

    public void push(final String arr1[]) { 

     new Thread(new Runnable() 
     { 
      public void run() 
      { 
         int k=20; 
        for(int i=0;i<10;i++) 
         { 
          try 
           {  
            String data=arr1[i]; 
            Font myfont1=Font.getDefault().derive(Font.PLAIN,k); 
            rch.setFont(myfont1); 
            rch.setText("      "+(data)); 
            k=k-2; 
           } 
          catch(Exception ex) 
           { 
            ex.printStackTrace(); 
           } 
          try 
           { 
            Thread.sleep(2000); 
           } 
          catch (InterruptedException e) 
           { 
            e.printStackTrace(); 
           } 
         } 


       } 

     }).start(); 
    } 
} 

我必须减少字符串数组中使用的每个单词的字体大小。
这是我的代码,但在这里面for循环字体不工作,所以请检查它并给我一些建议,谢谢如何缩小字体大小?

回答

0

您正在设置循环中整个字段的字体。如果您希望字段内容的不同部分使用不同的字体,那不是实现它的方法。查看RichTextField的文档,了解如何使用多参数setText方法为文本的不同部分定义不同的字体。

2

你可以试试ActiveRichTextField。在ActiveRichTextField中,不仅可以赋予不同的字体,还可以赋予不同的颜色。

例如

String data = "Hello World!"; 
int offsets[] ={0,5,data.length()}; 
Font[] fonts = new Font[] { Font.getDefault(), Font.getDefault()}; 
int bg[] = new int[] { Color.WHITE, Color.WHITE}; 
int fg[] = new int[] { Color.BLACK, Color.RED}; 
byte attributes[] = {0,1}; 

add(new ActiveRichTextField(data, offsets, attributes, fonts, 
           fg, bg, 0));