在Android上(在模拟器或IOS中工作正常)在Label上使用创建的TTF字体(来自文件)时,请勿将图标与字体垂直对齐,字体应位于顶部。当我使用本地字体时,效果很好。
我的测试用例的表单代码,如您在ScreenShots,IOS和Simulador上看到的那样,Valign位于Label和Picker的中心,但是在Android上居于居首,这在所有组件中都是如此
package test.kandy;
import com.codename1.ui.Display;
import com.codename1.ui.Font;
import com.codename1.ui.FontImage;
import com.codename1.ui.Form;
import com.codename1.ui.Label;
import com.codename1.ui.layouts.BoxLayout;
import com.codename1.ui.plaf.Style;
import com.codename1.ui.spinner.Picker;
public class ShaiForm extends Form {
private Form previous;
public ShaiForm() {
setLayout(new BoxLayout(BoxLayout.Y_AXIS));
int fontSize = Display.getInstance().convertToPixels(3);
Font appFont = Font.createTrueTypeFont("Suisse Int'l", "Suisse Int'l.ttf" ).derive(fontSize, Font.STYLE_PLAIN);;
FontImage fntImage = FontImage.createFixed("\uE161", FontImage.getMaterialDesignFont(), 0x0, 100, 100);
Label labelCustomTTF = new Label ("custom TTF");
Style labelStyle = labelCustomTTF.getAllStyles();
labelStyle.setFont(appFont);
labelCustomTTF.setIcon(fntImage);
Label labelNative = new Label ("native Font");
labelNative.setIcon(fntImage);
Picker stringPickerCustom = new Picker();
Style pickerStyle = stringPickerCustom.getAllStyles();
pickerStyle.setFont(appFont);
stringPickerCustom.setType(Display.PICKER_TYPE_STRINGS);
stringPickerCustom.setStrings("custom TTF Font");
stringPickerCustom.setText("custom TTF Font");
Picker stringPickerNative = new Picker();
stringPickerNative.setType(Display.PICKER_TYPE_STRINGS);
stringPickerNative.setStrings("native Font");
stringPickerNative.setText("native Font");
add(labelCustomTTF);
add(labelNative);
add(stringPickerCustom);
add(stringPickerNative);
}
public void show() {
previous = Display.getInstance().getCurrent();
super.show();
}
public void goBack(){
previous.showBack();
}
}