【问题标题】:9patch image with only horizontal scaling9patch 图像只有水平缩放
【发布时间】:2011-07-06 12:39:50
【问题描述】:

如何创建仅水平缩放的 9Patch 图像?我不希望它垂直缩放。我无法创建这样的 9 PNG。

我尝试了http://radleymarx.com/blog/simple-guide-to-9-patch/ 的文章,但他们的方法不起作用。当我跳过左侧指南时,它会在 Eclipse 中出现错误。

我正在尝试水平缩放此 image,以创建标题栏。

【问题讨论】:

    标签: android android-image


    【解决方案1】:

    好吧,您可以将垂直缩放标记为图像的透明部分。可能就在顶部和底部边缘附近。只有那些部分会垂直缩放。其他垂直部分将保持不变。

    【讨论】:

    • 实际上,我根本不想垂直缩放图像。不支持吗?
    • 不支持省略左侧标记。如果您可以发布示例图片并说明您希望它如何扩展/缩放,那就太好了。
    • 您需要稍微修改图像,在图像的顶部和底部添加一点填充,并使这些区域可扩展。据我所知,您必须在创建 9 补丁时指定垂直可扩展部分。我假设将承载此图像的视图几乎与图像大小相同。剩下的就应该这样处理了。
    【解决方案2】:

    您可以尝试使用 tiled drawable 而不是 9patch:

    您通过 xml 创建一个新的可绘制对象,使用图像的非 9patch 版本,然后将 tileMode 设置为重复。然后,您可以将这个新的可绘制对象设置为标题的背景,它应该按照您的描述显示。

    http://androidblogger.blogspot.com/2009/01/how-to-have-tiled-background-cont.html

    【讨论】:

    • 如果我没记错的话,即使是“重复”也会以两种方式平铺图像。不是吗?
    • 你是对的。您可以将布局设置为具有与图像大小匹配的高度。这样可以防止任何垂直重复;
    【解决方案3】:

    即使这个问题在几年前已经得到解答,我自己也得到了另一个解决方案。 我尝试在垂直 LinearLayout 中放置一些 Textview,它们都具有相同的高度,但高度可变(取决于它们的内容)。

    我的解决方案:

    android:paddingLeft="60dp"
    android:paddingRight="60dp"
    

    (如果你想让你的 Textviews 更苗条,比添加更高的填充值)

    在线性布局中: 安卓:paddingLeft="60dp" android:paddingRight="60dp"

    并设置其子项(文本视图):

    • 9patch 文件作为背景

    • android:layout_width="match_parent"

    • android:layout_height="wrap_content"

    【讨论】:

      猜你喜欢
      • 2012-11-03
      • 2016-10-15
      • 2021-12-22
      • 1970-01-01
      • 2015-09-20
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      相关资源
      最近更新 更多