• shape的使用


    android在布局边缘位置处理圆角的两个办法:

    1),一个是直接让美工切一张带有圆角的图片。

    2),使用shape来解决。

    第一种不在赘述,主要讲一下第二中方法来实现。

    上边缘出现圆角,下边缘正常的shape处理:

    文件位置:drawable/shape_top.xml

    shape_top.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:state_pressed="true"><shape>
                <gradient android:angle="270" android:endColor="#f0f0f0" android:startColor="#f0f0f0" />
    
                <stroke android:width="1dp" android:color="#dddddd" />
    
                <corners android:topLeftRadius="5dp" android:topRightRadius="5dp" />
    
                <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
            </shape></item>
        <item android:state_focused="true"><shape>
                <gradient android:angle="270" android:endColor="#f0f0f0" android:startColor="#f0f0f0" />
    
                <stroke android:width="1dp" android:color="#dddddd" />
    
                <corners android:topLeftRadius="5dp" android:topRightRadius="5dp" />
    
                <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
            </shape></item>
        <item><shape>
                <gradient android:angle="270" android:endColor="#ffffff" android:startColor="#ffffff" />
    
                <stroke android:width="1dp" android:color="#ffffff" />
    
                <corners android:topLeftRadius="5dp" android:topRightRadius="5dp" />
    
                <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
            </shape></item>
    
    </selector>

    在布局文件中加上android:background="@drawable/shape_top"

    没有圆角的shape设置:

    文件位置:drawable/shape_middle.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:state_pressed="true"><shape>
                <gradient android:angle="270" android:endColor="#f0f0f0" android:startColor="#f0f0f0" />
    
                <stroke android:width="1dp" android:color="#dddddd" />
    
                <corners android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" />
    
                <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
            </shape></item>
        <item android:state_focused="true"><shape>
                <gradient android:angle="270" android:endColor="#f0f0f0" android:startColor="#f0f0f0" />
    
                <stroke android:width="1dp" android:color="#dddddd" />
    
                <corners android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" />
    
                <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
            </shape></item>
        <item><shape>
                <gradient android:angle="270" android:endColor="#ffffff" android:startColor="#ffffff" />
    
                <stroke android:width="1dp" android:color="#ffffff" />
    
                <corners android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" />
    
                <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
            </shape></item>
    
    </selector>

    在布局文件中加上android:background="@drawable/shape_middle"

    下边缘出现圆角,上边缘不出现圆角的功能实现:

    位置:drawable/shape_down.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:state_pressed="true"><shape>
                <gradient android:angle="270" android:endColor="#f0f0f0" android:startColor="#f0f0f0" />
    
                <stroke android:width="1dp" android:color="#dddddd" />
    
                <corners android:bottomLeftRadius="5dp" android:bottomRightRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="5dp" />
    
                <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
            </shape></item>
        <item android:state_focused="true"><shape>
                <gradient android:angle="270" android:endColor="#f0f0f0" android:startColor="#f0f0f0" />
    
                <stroke android:width="1dp" android:color="#dddddd" />
    
                <corners android:bottomLeftRadius="5dp" android:bottomRightRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="5dp" />
    
                <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
            </shape></item>
        <item><shape>
                <gradient android:angle="270" android:endColor="#ffffff" android:startColor="#ffffff" />
    
                <stroke android:width="1dp" android:color="#ffffff" />
    
                <corners android:bottomLeftRadius="5dp" android:bottomRightRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="5dp" />
    
                <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
            </shape></item>
    
    </selector>

    在布局文件中加上android:background="@drawable/shape_down"

    希望对各位有所帮助,如果有错误,请指正。谢谢

  • 相关阅读:
    2016012061 小学四则运算练习软件项目报告
    阅读《构建之法》的几点思考
    软件工程之我见
    作业五
    结对作业
    第4.17章读书笔记
    week_2 四则运算
    第1.2.16章读书笔记
    我与软件工程
    团队项目Alpha冲刺阶段之学习总结
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/3404845.html
Copyright © 2020-2023  润新知