如何减小字体大小?

时间:2011-03-03 07:43:09

标签: blackberry

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();
  }
}

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

2 个答案:

答案 0 :(得分:2)

您可以尝试使用ActiveRichTextField。在ActiveRichTextField中,您不仅可以提供不同的字体,还可以提供不同的颜色。

e.g。

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));

答案 1 :(得分:0)

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