Android上的JavaFX ScrollPane - 太慢了

时间:2015-05-07 20:28:24

标签: android performance javafx scrollpane javafxports

我刚编写了一个在JavaFX中使用滚动窗格的简单示例。只有一个ScrollPane放置在Scene中,ScrollPane包含一个带有大文本的Label组件。使用gradle我已经在Nexus 4 android设备上上传了应用程序。从the video I have uploaded可以看出,滚动速度太慢了。我相信其他人也经历过这一点。任何有关如何将其更改为原生速度滚动的建议都非常受欢迎。

该应用的源代码可以是downloaded from here

AndroidFX.java

public class AndroidFX extends Application{

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent mySearchListFXML = getFXMLPane("/fxml/ScrollPaneWithLabel.fxml");
        primaryStage.setScene(new Scene(mySearchListFXML));
        primaryStage.setWidth(Screen.getPrimary().getVisualBounds().getWidth()); primaryStage.setHeight(Screen.getPrimary().getVisualBounds().getHeight());     
        primaryStage.show();
    }

    public static Parent getFXMLPane(String url) throws IOException {
        URL location = AndroidFX.class.getResource(url);
        FXMLLoader fxmlLoader = new FXMLLoader();
        fxmlLoader.setLocation(location);
        Parent pane = fxmlLoader.load();
        return pane;
    }
}

ScrollPaneWithLabel.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>

<ScrollPane fx:id="scrollPane" fitToWidth="true" hbarPolicy="NEVER" pannable="true" style="-fx-background: white;" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <content>
      <Label text="<VERY LARGE TEXT HERE>" wrapText="true" />
   </content>
</ScrollPane>

1 个答案:

答案 0 :(得分:0)

面临类似的问题。 hidpi设备上的问题更严重,禁用属性文件中的hipdpi设置会有所帮助,但您必须为hidpi屏幕进行任何缩放。

另一件可能有用的事情就是缓存字体。我相信javafx移植应用程序的最终结果更像是一个带有热点的大图像。滚动我认为只是告诉应用程序每次重绘整个图像。真是一个理论。缓存确实有帮助,但可以使您的文本看起来有点模糊。虽然我在缩放字体方面取得了一些成功,但将缓存设置为true然后缩小,通常x2和.5会产生相当不错的结果。使用em作为字体也有助于模糊文本。

如果您需要显示大量文本并且必须滚动它,您可能会通过webview显示更好的结果。我从来没有真正使用过它,但是我想可以在用本机浏览器窗口移植时替换它,所以我认为性能应该非常好。我猜他们有可能在javafx中编写了一个html渲染器,然后你会遇到同样的陷阱。

http://www.gluonhq.com提供了一个名为charm,down和connect包的东西,它应该模仿本机应用程序。这听起来很有希望,我目前正在尝试获取更多信息,看看他们是否有解决这些类型的问题。如果我收到有关魅力的更多信息,我会在帖子中添加。