【问题标题】:Button icons background size按钮图标背景大小
【发布时间】:2011-07-27 09:14:45
【问题描述】:

我使用按钮供用户进行选择,大小为 50dip 正方形。如果我使用带有文本的按钮,我会得到一个带有“闪光”的圆角正方形,以便在按下时进行确认,一切正常。但是文字并没有真正描述按钮功能,我想使用图像。我尝试使用 24x24 png 作为背景,但模拟器上的分辨率非常糟糕,像素化程度极高,并且分辨率与“普通”、仅文本、按钮的圆角完全不同(试图圆角背景图像使它看起来像一个金字形神塔)。解决这个问题的最佳方法是什么?我应该使用 250 像素正方形的 bmp 并让 android 压缩它,还是有更好的方法在屏幕上获得令人满意的分辨率 bmp?

【问题讨论】:

    标签: android button background icons size


    【解决方案1】:

    我假设您想设置自动增长/缩小的按钮背景(与分辨率无关的图形),如果是这种情况,那么 Android 已经有一个工具:Draw 9-patch 工具。

    因此创建一个 40*40 或 50*50 9-patch 背景图像,然后将其设置在按钮内。

    有关 Draw 9-patch 工具的更多信息,只需单击上面的链接。 和 这是迄今为止我发现的最好的例子:http://www.dibbus.com/2011/03/9patch-images-in-android/

    9-patch 图形示例(取自上面的示例链接):

    【讨论】:

    • 谢谢,我试试这个,希望圆形图像最终能正常显示。
    • 为了记录,我通过使图标略大于 50dip 来解决它,所以 android 将它们压缩了一点。我怀疑对于具有倾斜尺寸的对象,图像应该 >= 到对象大小,否则 android 会扩展它们,并且这种扩展可能会产生“像素化”。
    【解决方案2】:

    Android 根据屏幕分辨率缩放可绘制对象。因此,在 dips 中定义的相当小的可绘制对象在低分辨率屏幕上可能看起来不错,但在高分辨率屏幕上非常难看。但是,您可以根据屏幕分辨率告诉 Android 要使用哪些可绘制对象。

    在资源文件夹中设置这样的文件夹结构:

    • 可绘制
    • drawable-ldpi
    • drawable-mdpi
    • drawable-hdpi

    这样您就可以为您的应用程序创建特定分辨率的图形。您为跨分辨率图形(XML 定义的可绘制对象等)保留默认的“可绘制”文件夹。希望这对更一般的意义有所帮助。

    【讨论】:

      【解决方案3】:

      您应该阅读 Android 开发者指南。更具体地说,那部分:

      Supporting Multiple Screens

      【讨论】:

      • 我读过这篇文章,但没有看到(或错过?)任何暗示哪些像素图标与 50 dps 相关的内容。
      • 作为一般规则,将您的 mdpi 大小乘以 1.5 以获得 hdpi 大小。例如,应该为 hdpi 提供 75px 大小的 50px 按钮 mdpi,以免看起来像素化。您还需要按照另一个答案中的建议学习如何使用 9-patch 图像。
      猜你喜欢
      • 2021-04-04
      • 2014-06-20
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 2015-09-09
      • 1970-01-01
      相关资源
      最近更新 更多