美文网首页
shape 简单使用

shape 简单使用

作者: 穿越平行宇宙 | 来源:发表于2019-04-01 19:47 被阅读0次
    Android中shape的使用

    工作中总是会用到shape去画一些背景,每次都要去百度,但是很多都写的很模糊或者属性不是很全,所以今天自己总结了一下,给大家分享一下,自己以后也可以看

    shape中常用的属性,如下:

    <shape>  Android:shape=["rectangle" | "oval" | "line" | "ring"],其中rectagle矩形,oval椭圆,line水平直线,ring环形
    <shape>中子节点的常用属性:
    <gradient>  渐变
             Android:startColor  起始颜色
             Android:endColor  结束颜色             
             Android:angle  渐变角度,0从左到右,90表示从下到上,数值为45的整数倍,默认为0;
             Android:type 渐变的样式 liner线性渐变 radial环形渐变 sweep
    <solid >  填充
             Android:color  填充的颜色
    <stroke >描边
            Android:width 描边的宽度
            Android:color 描边的颜色
            Android:dashWidth 表示'-'横线的宽度
            Android:dashGap 表示'-'横线之间的距离
    <corners >圆角
            Android:radius  圆角的半径 值越大角越圆
            Android:topRightRadius  右上圆角半径
            Android:bottomLeftRadius 右下圆角角半径
            Android:topLeftRadius 左上圆角半径
            Android:bottomRightRadius 左下圆角半径
    <padding >填充
    
    android:bottom="1.0dip" 底部填充
    android:left="1.0dip" 左边填充
    android:right="1.0dip" 右边填充
    android:top="0.0dip" 上面填充
    

    ShapeDrawable是一种很常见的Drawable,可以理解为通过颜色来构造的图形,它既可以是纯色的图形,也可以是具有渐变效果的图形,ShapeDrawabled语法稍显复杂,如下所示:

    <shape
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape=["rectangle" | "oval" | "line" | "ring"] >
      <corners
        android:radius="integer"
        android:topLeftRadius="integer"
        android:topRightRadius="integer"
        android:bottomLeftRadius="integer"
        android:bottomRightRadius="integer" />
      <gradient
        android:angle="integer"
        android:centerX="integer"
        android:centerY="integer"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:useLevel=["true" | "false"] />
      <padding
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer" />
      <size
        android:width="integer"
        android:height="integer" />
      <solid
        android:color="color" />
      <stroke
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"
        android:dashGap="integer" />
    </shape>
    

    • Android: shape

    • 有4个选项,rectangle(矩形)oval(椭圆)line(横线)ring(圆环),默认为rectangle,需要注意line和ring需要通过标签来指定线的宽度和颜色等信息,否则无法达到预期效果
    • 首先来说一下最常用的rectangle(矩形),一般都是在按钮或者字体上面设置一个background的Drawable。一般设置效果为正方形或者两边有弧度的形状。

    ◦ 第一种情况就是设置矩形背景

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle"
     > 
        <size 
            android:width="200dp"
            android:height="20dp"
        /> 
        <solid android:color="#d22121"/> 
    </shape>
    

    通过设置size设置矩形的宽度和高度,这里需要说明一下,咱们在这里设置size的宽高,在最终显示尺寸是没有用的,也就是说当你在一个控件中设置background的时候,这个shape是会被拉伸或者缩小为view的大小。solid属性设置矩形里面的背景颜色。

    image.png

    将背景色设置为渐变

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle"
     > 
        <size 
            android:width="200dp"
            android:height="20dp"
        /> 
        
        <gradient 
            android:startColor="#fff"
            android:centerColor="#f1a9a9"
            android:endColor="#ec5b5b"
            android:type="linear"
        /> 
    </shape>
    

    效果图:


    image.png

    这里默认的type就是linear,里面还有其他两个属性可以选择分别是radial(径向渐变)和sweep(扫描渐变)
    一般最常用的也就是线性渐变还有其他几个属性没有用但是很好理解
    android:angle——渐变的角度,默认为0,其值必须是45的倍数,0表示从左到右,90表示从下到上。
    android:centerX——渐变的中心点横坐标
    android:centerY——渐变的中心点纵坐标
    android:gradientRadiu——渐变半径,仅当android:type=”radial”时有效

    •接下来说一下画圆角的矩形背景
    ◦其实只用设置一下corners的属性就是了。

    image.png

    ◦具体详细的说明
    ◦android:radius—— 给四个角设置相同的角度,优先级较低,会被其他四个属性覆盖
    android:bottomLeftRadius——设定左下角的角度
    android:bottomRightRadius——设定右下角的角度
    android:TopLeftRadius——设定左上角的角度
    android:TopRightRadius——设定右上角的角度

    接下来就是如何画一个空心的背景

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle"
     > 
        <size 
            android:width="200dp"
            android:height="20dp"
        /> 
     
        <stroke 
            android:width="1px"
            android:color="#ffff1c77"
        /> 
        
        <corners android:radius="50dp"/> 
    
    </shape>
    

    效果图如下


    image.png

    当然里面也可以自由发挥设置渐变色,但是一般里面都纯色。

    ◦这里里面也可以设置为虚线

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle"
     > 
        <size 
            android:width="200dp"
            android:height="20dp"
        /> 
        
        <stroke 
            android:dashWidth="4dp"
            android:dashGap="2dp"
            android:width="1px"
            android:color="#ffff1c77"
        />
        
        <corners android:radius="50dp"/> 
    
    </shape>
    
    image.png

    好了,其实里面的东西很简单,总结一下就好了。希望大家用的开心。

    您可能感兴趣的文章:

    原文链接:http://blog.csdn.net/code_legend/article/details/74615251

    相关文章

      网友评论

          本文标题:shape 简单使用

          本文链接:https://www.haomeiwen.com/subject/ggakvqtx.html