优雅的解决背景图片的拉伸

给view用shape或者layerlist层叠背景时,经常遇到背景拉伸,不是预期的效果。今天发现如下方法可以很完美的解决这个问题,记录一下。

  • 首先看一个被拉伸了的案例

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item >
            <shape>
                <solid android:color="@color/split_line_color" />
            </shape>
    
        </item>
        <item android:src="@mipmap/loading_logo" android:gravity="center">
        </item>
    
    </layer-list>
    

    as预览效果如下


    预览效果
    预览效果

    这样的实现,小米、三星都没有问题,恶心的魅族有问题:


    被拉伸
    被拉伸
  • 解决方案

    代码如下

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item >
            <shape>
                <solid android:color="@color/split_line_color" />
            </shape>
    
        </item>
        <item >
            <bitmap android:src="@mipmap/loading_logo" android:tileMode="disabled" android:gravity="center"></bitmap>
        </item>
        
    </layer-list>
    

    添加bitmap标签,并将tileMode 设置为disabled,不让其拉伸。
    记得还要设置gravity,否则不会有效果。


    效果
    效果

    参考链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,062评论 25 709
  • 转载自Keegan小钢并标明原文链接:http://keeganlee.me/post/android/20150...
    坚持编程_lyz阅读 4,871评论 0 1
  • XML bitmap XML 位图是在 XML 中定义的资源,指向位图文件。实际上是原始位图文件的别名。XML 可...
    李建彪阅读 5,701评论 0 3
  • 人的功课是一门非常高深的学问。 有时候明明相爱的两个人,却由于彼此没有注意措辞,控制情绪,彼此好象还不懂事,生生分...
    早睡早起团时间管理阅读 1,904评论 0 0
  • 这几天读的都是关于政治题材的文章:法国大选,中国在全球的地位,特朗普一百天,货币操控。在读的过程中,我发现,有些内...
    虎跳霞阅读 1,020评论 0 0