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

Мне нужно уменьшить размер шрифта для каждого слова, используемого в массиве String.
это мой код, но здесь внутри петли Шрифт не работает, поэтому, пожалуйста, проверьте его и дайте мне некоторое предложение спасибоКак уменьшить размер шрифта?

ответ

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)); 
Смежные вопросы