我正在开发一个应用程序,将谷歌地图(api v2)显示为片段.当应用程序加载时,它会在显示地图之前显示一个空白的白色屏幕几秒钟.我已经使用了日志语句来查看延迟的位置,但我不知道它为什么这么慢.
这是我的onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate Start -------------------------------");
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate 1 -------------------------------");
setContentView(R.layout.activity_main);
Log.i(TAG, "onCreate 2 -------------------------------");
do_async_setup();
Log.i(TAG, "onCreate 3 -------------------------------");
prefs = getSharedPreferences(PREFS_NAME, 0);
prefs_editor = prefs.edit();
Log.i(TAG, "onCreate Finish -------------------------------");
Run Code Online (Sandbox Code Playgroud)
这是输出.
01-20 10:05:28.802: I/HeadsUp(19544): onCreate Start -------------------------------
01-20 10:05:28.802: I/HeadsUp(19544): onCreate 1 -------------------------------
01-20 10:05:30.396: I/HeadsUp(19544): onCreate 2 -------------------------------
01-20 10:05:30.396: I/HeadsUp(19544): onCreate 3 -------------------------------
01-20 10:05:30.403: I/HeadsUp(19544): onCreate Finish -------------------------------
Run Code Online (Sandbox Code Playgroud)
你可以看到setContentView有1.5秒的延迟.这是我的布局.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<fragment xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习android,并使用新的googlemaps v2 api玩应用程序.
我有几个菜单项,一个缩放到当前位置,一个最终将缩放到另一个位置.第一个(在下面的代码中显示show_horizon)使地图旋转,第二个将地图设置为静态,在屏幕顶部显示北.
我已将它们设置为长时间延迟6秒,但show_horizon()似乎忽略了速度设置,而show_iss()则尊重它.
此外,一旦处于旋转模式,如果我滚动地图,触发器show_horizon()现在将尊重速度设置.
因此,当我从非旋转切换到旋转时,它似乎只忽略代码,但是当我走另一条路时它会尊重它.切换时我试图停止监听器以防万一中断摄像机动画,但它没有区别?
任何线索或想法欢迎.
谢谢
这是代码.
我有一个传感器监听器像这样得到了手机的方位:
private SensorEventListener get_bearing = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
float azimuth = event.values[0];
set_bearing(azimuth);
}
};
private void set_bearing(float azimuth) {
if (!rotate_view) {
bearing = 0;
} else {
if (bearing != Math.round(azimuth)) {
bearing = Math.round(azimuth);
update_map();
}
}
}
Run Code Online (Sandbox Code Playgroud)
以及将地图更改为是否旋转的几种方法:
private void show_horizon() {
current_pos = new LatLng(gps.getLatitude(), gps.getLongitude());
rotate_view = true;
tilt …Run Code Online (Sandbox Code Playgroud) 是否可以在JavaFX应用程序运行时更改css?
我正在寻找的效果是点击一个按钮改变皮肤或主题.
FXML如果存在任何差异,则UI位于文件中.
我试过了
Scene.getStylesheets()
.add(getClass().getResource(skinFileName).toExternalForm());
Run Code Online (Sandbox Code Playgroud)
这没有效果.
谢谢
我一直在使用此代码从 JavaFX8 尝试 SwingNode。问题是当窗口出现时我无法单击按钮,直到我调整了窗口大小。移动它不起作用。我需要最大化它或用鼠标调整它的大小以使按钮响应。
我意识到这可能是一个错误,因为 javafx8 仍处于测试阶段,但如果情况并非如此,我需要做些什么来使这项工作不先调整窗口大小?
public class SwingNodeTest extends Application {
private SwingNode swingNode;
@Override
public void start(Stage stage) {
swingNode = new SwingNode();
createAndSetSwingContent();
StackPane pane = new StackPane();
pane.getChildren().add(swingNode);
stage.setScene(new Scene(pane, 100, 50));
stage.show();
}
private void createAndSetSwingContent() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
swingNode.setContent(new JButton("Click me!"));
}
});
}
public static void main(String[] args) {
Application.launch(args);
}
}
Run Code Online (Sandbox Code Playgroud) 在这段代码中:
public class ESM extends Application {
private Stage primaryStage;
@FXML
private ToolBar mainToolBar;
@Override
public void start(final Stage stage) throws Exception {
try{
this.primaryStage = stage;
Parent root = FXMLLoader.load(getClass().getResource("/nz/co/great_ape/esm3/main_window.fxml"));
Scene scene = new Scene(root, 800, 700);
// Setup main stage to be full screen, no min or max buttons.
// TODO: How will this handle multiple screens? Apparently not well :-(
Screen screen = Screen.getPrimary();
Rectangle2D bounds = screen.getVisualBounds();
primaryStage.setX(bounds.getMinX());
primaryStage.setY(bounds.getMinY());
primaryStage.setWidth(bounds.getWidth());
primaryStage.setHeight(bounds.getHeight());
primaryStage.initStyle(StageStyle.UNDECORATED);
primaryStage.setTitle("ESM three");
primaryStage.setScene(scene);
primaryStage.show(); …Run Code Online (Sandbox Code Playgroud)