shape的使用

简介: android在布局边缘位置处理圆角的两个办法: 1),一个是直接让美工切一张带有圆角的图片。 2),使用shape来解决。 第一种不在赘述,主要讲一下第二中方法来实现。   上边缘出现圆角,下边缘正常的shape处理: 文件位置:drawable/shape_top.

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"

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

相关文章
|
存储 PyTorch 算法框架/工具
Tensor to img && imge to tensor (pytorch的tensor转换)
Tensor to img && imge to tensor (pytorch的tensor转换)
|
7月前
|
计算机视觉 Python
cv2 resize 与reshape的区别
cv2 resize 与reshape的区别
fit、transform、fit_transform的区别和联系
fit、transform、fit_transform的区别和联系
怎么将[tensor([[ 1, 2]]), tensor([[5, 6]]), tensor([[9, 10]])] 合并成 tensor([[1,2],[3,4],[5,6]])
可以先使用 torch.cat() 函数将列表中的张量在第0维(行)上进行拼接,然后再使用 .view() 函数将形状调整为需要的形状。
124 0
torch中如何将tensor([[1, 2, 3]]) 和 tensor([4]) 合并成 tensor([[1,2,3,4]])
可以使用 torch.cat() 方法将两个张量沿着指定的维度进行拼接
380 0
|
Android开发
利用layer-list和shape实现下划线效果
因为shape如果形状设为line,则是居中的,可以做分割线,但是无法做下划线。 比如我们想为TextView设置一个背景,实现下划线。 需要用layer-list,因为shape的stroke是四周描边的,这里android:left="-4dp"就是指item的drawable(就是shape)从整个画布的-4dp开始绘制, 这样其实显示在画布中的shape就没有左边了,同理,上左右都这么处理就只剩下底边,就实现了下划线效果
386 0
|
Python
【Numpy库学习笔记】Numpy中dim、shape和size的理解
【Numpy库学习笔记】Numpy中dim、shape和size的理解
226 0
成功解决ValueError: Cannot feed value of shape (1, 10, 4) for Tensor Placeholder:0 , which has shape
成功解决ValueError: Cannot feed value of shape (1, 10, 4) for Tensor Placeholder:0 , which has shape
Can not squeeze dim[1], expected a dimension of 1, got 21
Can not squeeze dim[1], expected a dimension of 1, got 21
429 0