android - 代号一 - 根据可用空间自动调整图像大小

标签 android ios codenameone

我在登录屏幕的顶部有一个 Logo :

ScaleImageLabel logo =  new ScaleImageLabel(theme.getImage("myLogo.svg"))
logo.setName("MyLogo");
logo.setUIID("MyLogo");
backgroundContainer.add(BorderLayout.NORTH, FlowLayout.encloseCenterMiddle(logo));

我的主要问题是大小,因为在某些设备上太大,在其他设备上太小。

例如,假设我希望 Logo 在最大 80% 的水平屏幕空间和最大 20% 的垂直屏幕空间(根据它们的最大值)自动调整大小。如果 Logo 位于边框布局的北部,我该如何实现?

最佳答案

您正在使用流式布局来包装组件。流式布局为组件提供了首选尺寸,因此如果首选尺寸太小,您的缩放组件将不再重要。

我建议使用在所有基于 DPI 的设备上看起来都不错的多图像,并避免缩放 Logo 等元素。 Multi-image 正是为此目的而设计的。或者,您可以使用如下代码以毫米为单位调整图像大小:

Image img = logo.scaledHeight(Display.getInstance().convert(sizeInMM));  

关于android - 代号一 - 根据可用空间自动调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47503140/

相关文章:

java - 弹出返回堆栈时 fragment 会被销毁吗?

ios - UIViewController 中的 Swift 动态 TableView

java - 在IntelliJ中下载cn1lib不起作用

安卓 : Programmatically Factory Reset?

android - 如何在flutter中使用firebase登录谷歌时检查用户是新用户还是现有用户?

android - Android Market 应用程序中的水平滚动称为什么?

iphone - cellForRowAtIndexPath 加载可见单元格上方和下方的 3 个单元格

ios - Storyboard中设置的 View 背景颜色无法正常工作?

codenameone - 以 Galaxy S 为基础

java - 代号一 : Implementing a calculation for a fluid tracker