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循环字体不起作用所以请检查它并给我一些建议谢谢
答案 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
方法为文本的不同部分定义不同的字体。