【问题标题】:Android inset transparent drawableAndroid inset 透明drawable
【发布时间】:2012-12-11 10:33:16
【问题描述】:

所以我有一个如下所示的 PNG。图像中的白色内部是透明的。

我的问题是,此图像无法真正针对 Android 设备上的不同尺寸屏幕进行缩放。

我想知道如何在代码中或者最好是 xml 中做到这一点。基本上我正在寻找一个带有透明圆形插图的灰色正方形。

另外,灰色的内边框也有很好的效果,这在代码中可能吗?

我知道如何做逆向操作(带圆角的位图),但我该怎么做呢?任何想法表示赞赏,谢谢。

编辑:

所以,我唯一尝试过的是android:scaleType="centerCrop"

【问题讨论】:

  • 请分享一些代码你做了什么和结果。因为问题看起来很容易,我可能会误解一些东西。在 xml 端匹配父级自动缩放不同屏幕的 png。
  • 您好,请您详细说明匹配父级自动缩放。谢谢。
  • 假设您需要对图像进行遮罩,您可能正在寻找stackoverflow.com/questions/12614542/maskingcrop-image-in-frame

标签: android android-drawable


【解决方案1】:
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="fitCenter" 
            android:scaleX="0.7"/>
    </LinearLayout>

你能试试这个吗?

【讨论】:

  • 好的,看起来这是文档中的错误表示,因为这里解释了 scaleX/scaleY 是使用 Honeycomb 添加到 View 类的属性,因此很遗憾在 Froyo 中不可用。
  • 您需要更改 API 级别或进行手动缩放。
【解决方案2】:

从您的问题中不清楚为什么图像不能针对不同的屏幕尺寸正确缩放。

使用NinePatch PNG 格式,您可以完全控制图像的缩放方式。例如,这使您可以强制仅扩展图像灰色区域,保持圆形格式,如果这是您的问题。

文档可以在这里找到:Draw 9-patch

问候。

【讨论】:

  • 如果您不清楚问题,最好在评论区提问,而不是发布假设问题的答案。
  • @hotveryspicy 问题很清楚(即他想要做什么),不清楚的是为什么。我没有假设任何答案。仅对于我给出的示例,做出了相当的假设。我回答了你的几个问题,似乎你做出了假设,甚至没有意识到你在做这些假设......最糟糕的傻瓜是不知道它的傻瓜:-)
  • 它并不难受,I said what I felt 而且仅供参考,我不太赞成。不要把它当作个人的人:)
  • 嗨 Luis,这个答案似乎几乎是正确的。我可以使用 9 个补丁来拉伸灰色部分来填充。但是,我怎样才能让白色圆圈也扩大呢?谢谢。
  • 你不能同时拥有,填满屏幕并保持纵横比。正如我所说,您需要更具体地说明您的问题以及您想要实现的目标。一般来说,您应该能够通过为不同的屏幕尺寸(即小、正常、大等)和/或密度(ldpi、mdpi、hdpi)和近似的最终圆尺寸创建单独的图像来获得相当好的结果.然后NinePatch 将用于仅扩展灰色区域以完全适合屏幕。
猜你喜欢
  • 2014-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
  • 2014-03-18
相关资源
最近更新 更多