【问题标题】:Resize image on QVGA screens在 QVGA 屏幕上调整图像大小
【发布时间】:2013-04-08 14:22:29
【问题描述】:

我有一个带有登录屏幕的应用程序。在那个屏幕上,我有公司徽标。

首先我制作了一个布局文件夹和一个可绘制文件夹。我测试过,一切正常。

然后我添加了 4 个布局文件夹(普通、大、小和 xlarge)和 4 个可绘制文件夹(hdpi、ldpi、mdpi、xhdpi)。 我刚刚将我的 logo.png 和 main_layout.xml 复制到每个文件夹(这是错误的,但只是为了测试)。 当然,当我在每个不同的屏幕尺寸模拟器上测试应用程序时,它会显示徽标图像位置错误或变形(有时更大或更小,有时位置不好,等等)。没错,因为我没有创建不同的 png 文件,也没有针对不同的尺寸调整布局。

所以,下一步就是与设计区交谈,询问每个密度的 4 个 png 文件,并检查“4 个布局”。

一旦我修复了 4 个 png 文件和布局,我使用 4 个模拟器再次测试了该应用程序(一个用于普通屏幕,另一个用于大屏幕,另一个用于超大屏幕,一个用于小屏幕)。仍然不能像我想要的那样工作。

在某些情况下,logo.png 显示的比我想要的更大。在其他方面它显示得更小。 我不明白我必须做什么。 我使用 wrap_content,我创建了 4 个可绘制文件夹(hdpi、ldpi、mdpi、xhdpi),我有 4 个不同大小的 logo.png 文件。

但是当我在 QVGA 模拟器上看到图像时(例如),它会显示一个巨大的图像。

如果不同的布局是为了屏幕尺寸,不同的png是为了不同的密度,我必须怎么做才能使用小或大的图像(png)??

感谢和抱歉我的英语不好

【问题讨论】:

    标签: android android-layout android-drawable


    【解决方案1】:

    这种类型的问题通常是非常具体的。

    但一般的做法是只有 ONE 布局。 此布局中的任何尺寸值都放在 /values/ 文件夹内的 dimens.xml 文件中。 创建 4 个 .png(ldpi、mdpi、hdpi、xhdpi)并确保它们的比例正确! (仔细检查 Android 开发者网站以查看正确的比例。

    在您使用此设置进行测试后,如果有些东西不对齐,您将为该屏幕尺寸(小、大等)创建一个 dimens.xml,并仅添加您实际想要的尺寸改变。

    在测试之前不要添加所有尺寸或所有布局。从基础开始并根据需要添加更多资源通常更简单。

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,可能对您有帮助,也可能无济于事。我试图读取特定大小的 mjpeg 流,但它从来没有完全适合我调整大小的窗口。问题归结为许多设备的像素密度与操作系统报告的不完全相同。例如,操作系统可能报告 mdpi 为 160 dpi,但设备的实际 dpi 为 164。因此,如果您希望使用 1 个非常大的 *.png 并在运行时调整它的大小,请不要使用“标准”缩放因素(即 1、2、4 等),而是使用

      float factor = getResources().getDisplayMetrics().density;
      
      //To get width/height of the View 
      int width = view.getWidth(); //a fixed width would be preferred over this
      int realwidth = (int) Math.round(width/factor);
      

      请注意,调整大小是自动完成的,但如果让操作系统处理,有时您不会得到想要的结果。

      这并不是您所要求的,但如果您决定只使用一个可绘制对象,这有望避免一些麻烦。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-03
        • 1970-01-01
        • 1970-01-01
        • 2013-11-25
        • 1970-01-01
        • 2020-08-26
        相关资源
        最近更新 更多