gpt4 book ai didi

java - 代号一 : Setting Timeline as background image

转载 作者:行者123 更新时间:2023-12-02 08:40:36 25 4
gpt4 key购买 nike

我想将动画图像或视频添加到我的启动屏幕。它应该适合不同设备的屏幕尺寸。起初,我尝试添加一个 .mp4 ,它有效,但我无法正确转换(在进入下一个表单之前显示黑色矩形)。所以我改为时间线,将 gif 添加到 .res 文件中并尝试绘制它。我尝试过的方法都没有成功,我已经没有选择了,所以我想我会问是否有更好的方法。

选项 1:设置 BG

protected void beforeVideoSplash(Form f) {
super.beforeVideoSplash(f);
FormFactory.modifyBaseForm(f);

Timeline splashGif = null;

try {
splashGif = (Timeline) Resources.openLayered("/theme").getImage("vNewSplash480x360.gif");
} catch (IOException e) {
}

f.getAllStyles().setBgImage(splashGif);

}

结果:模拟器显示白屏。 Android 设备(平板电脑和手机)崩溃。

选项 2:在玻璃板上绘画

protected void beforeVideoSplash(Form f) {
super.beforeVideoSplash(f);
FormFactory.modifyBaseForm(f);

f.setGlassPane( new Painter() {

public void paint(Graphics g, Rectangle rect) {
Timeline splashGif = null;

try {
splashGif = (Timeline) Resources.openLayered("/theme").getImage("vNewSplash480x360.gif");
} catch (IOException e) {
}

splashGif.requiresDrawImage();

Display display = Display.getInstance();

int imgWidth = display.getDisplayWidth();
int imageHeight = 320 * display.getDisplayWidth() / 480;

g.drawImage(splashGif, 0, (display.getDisplayHeight() - imageHeight) / 2, imgWidth, imageHeight);
}
}
);

}

结果:模拟器和 Android 设备上出现白屏。

选项 3:缩放

不再重复,我像这样缩放了图像:

    Image scaled;

Display display = Display.getInstance();

if (display.getDisplayWidth() > display.getDisplayHeight()) {
scaled = splashGif.scaledWidth(display.getDisplayHeight());
} else {
scaled = splashGif.scaledWidth(display.getDisplayWidth());
}

然后将其添加到带有具有 CENTER 约束的 BorderLayout 的容器内的标签。

结果:这种方式确实有效,但应用程序运行速度太慢,可能是由于生成图像的缩放和大小所致。

选项 4:设置中心行为

使用 BorderLayout 尝试了每个中心行为(没有行为,只是放置它也尝试过)。添加图像作为标签图标。

结果:图像没有缩放,而且它出现在屏幕的左侧,而不是中心。

不记得我是否错过了某个选项,无论如何,所有选项都可以很好地处理从 jpg 或 png 加载的静态图像,是时间轴有问题吗?

有没有办法真正制作动画启动画面? (我不反对使用视频,在这种情况下,我需要使控件消失并且最后的转换是瞬时的,尝试使用计时器和完成回调,两者都显示一个视频大小的黑色矩形转换之前)

最佳答案

那里似乎出现了回归。我们将在下次更新时修复它。

您不需要调用requiresDrawImage(),因为它是我们内部使用的回调。您选择的第一种方法应该可以正常工作。

关于java - 代号一 : Setting Timeline as background image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35798935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com