【问题标题】:Image rendering in mobile apps移动应用程序中的图像渲染
【发布时间】:2016-02-21 12:53:13
【问题描述】:

我目前正在开发一个 android 移动应用程序,但我遇到了尺寸较小的 android 移动设备的图像渲染问题。这些图像在 Nexus、三星等宽屏手机上看起来很整洁,但在小屏幕手机上图像重叠。我正在使用 ionic 来构建我的代码,并且还包含了引导程序。

我在样式部分包含以下代码:

@media only screen and (max-width: 768px) {
/* For mobile phones: */
[class*="col-"] {
    width: 100%;
}

正文中的以下代码:

<div class="col-xs-12 col-md-12 col-sm-12" >
<div id="journey" class="col-xs-2">
                            <a href=" "> <img src="./images/launch 48.png" class="img_responsive" style="width:60px;height:70px;padding:5px;position: relative;left:1%;" cursor="pointer" onclick="" /></a>
</div>
<div id="conveyance" class="col-xs-2">
                            <a href="./4s.html "><img src="./images/launch 48.png" class="img_responsive"  style="width:60px;height:70px;padding:5px;" cursor="pointer" /></a>
</div>
<div id="per-diem" class="col-xs-2" >
                            <a href=" "> <img src="./images/launch 48.png" class="img_responsive"  style="width:60px;height:70px;padding:5px;"cursor="pointer" onclick="" /></a>
</div>
            <div id="lodging" class="col-xs-2" >
                            <a href=" "><img src="./images/launch 48.png" class="img_responsive" style="width:60px;height:70px; padding:5px;"cursor="pointer" onclick="" /></a>
</div>
            <div id="misc_1" class="col-xs-2" >
                            <a href=" "><img src="./images/launch 48.png" class="img_responsive" style="width:60px;height:70px; padding:5px;" cursor="pointer" onclick="" /></a>
</div>
            <div id="end_journey" class="col-xs-2">
                            <a href=" "> <img src="./images/launch 48.png" class="img_responsive" style="width:60px;height:70px;padding:5px;"cursor="pointer" onclick="" /></a>
</div>

【问题讨论】:

  • 您能创建一个小提琴来复制这个问题吗?
  • 您能帮我理解您所说的复制此问题的小提琴是什么意思吗?
  • jsfiddle.net - 重新创建您在该网站中遇到的问题,点击保存并在此处粘贴链接。
  • 问题不在网络浏览器..在手机..屏幕宽度较小时图像重叠
  • 请尝试创建一个类似@odedta 建议的小提琴,然后粘贴链接。使用 Web 浏览器的开发者工具,我们可以模拟较小的 android 设备屏幕的大小并尝试重新创建(并解决)问题

标签: javascript android html image ionic


【解决方案1】:

使用 dip 代替 Px

在 240 dpi 的屏幕上,1 dp 等于 1.5 个物理像素。在定义应用程序的 UI 时,您应该始终使用 dp 单位,以确保您的 UI 在不同密度的屏幕上正确显示。

如何支持多屏:

1.在清单中明确声明您的应用支持哪些屏幕尺寸:

通过声明您的应用支持哪些屏幕尺寸,您可以确保只有具有您支持的屏幕的设备才能下载您的应用。声明对不同屏幕尺寸的支持也会影响系统在更大屏幕上绘制应用程序的方式——特别是,您的应用程序是否在屏幕兼容模式下运行。 要声明您的应用程序支持的屏幕尺寸,您应该在清单文件中包含该元素。

2。为不同的屏幕尺寸提供不同的布局:

默认情况下,Android 会调整应用程序布局的大小以适应当前设备屏幕。在大多数情况下,这可以正常工作。在其他情况下,您的 UI 可能看起来不太好,并且可能需要针对不同的屏幕尺寸进行调整。例如,在较大的屏幕上,您可能需要调整某些元素的位置和大小以利用额外的屏幕空间,或者在较小的屏幕上,您可能需要调整大小以使所有内容都适合屏幕。 可用于提供特定大小资源的配置限定符有 small、normal、large 和 xlarge。例如,超大屏幕的布局应该放在 layout-xlarge/ 中。 从 Android 3.2(API 级别 13)开始,不推荐使用上述大小组,您应该改用 swdp 配置限定符来定义布局资源所需的最小可用宽度。例如,如果您的多窗格数位板布局需要至少 600dp 的屏幕宽度,则应将其放置在 layout-sw600dp/ 中。使用新的技术来声明布局资源将在 Android 3.2 的平板布局部分中进一步讨论。

3.为不同的屏幕密度提供不同的位图可绘制对象: 默认情况下,Android 会缩放您的位图可绘制对象(.png、.jpg 和 .gif 文件)和九补丁可绘制对象(.9.png 文件),以便它们在每个设备上以适当的物理尺寸呈现。例如,如果您的应用程序仅为基线、中等屏幕密度 (mdpi) 提供位图可绘制对象,则系统在高密度屏幕上时会放大它们,而在低密度屏幕上时会缩小它们。这种缩放会导致位图中出现伪影。为确保您的位图看起来最好,您应该包含针对不同屏幕密度的不同分辨率的替代版本。 可用于密度特定资源的配置限定符(详细描述如下)是 ldpi(低)、mdpi(中)、hdpi(高)、xhdpi extra-high)、xxhdpi(extra-extra-high)和xxxhdpi(超超超高)。例如,高密度屏幕的位图应该放在 drawable-hdpi/ 中。

请参考 http://developer.android.com/guide/practices/screens_support.html

如果您想了解更多信息,请参阅: What is the difference between "px", "dp", "dip" and "sp" on Android?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-14
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多