Android shape使用总结

作者: 安卓程序猿 | 来源:发表于2017-02-25 22:04 被阅读1664次

安卓开发宝典文章列表:

源码地址(喜欢的话请给颗star)

前言

近年来手机配置是越来越高,我依稀记得我第一台安卓手机只有512内存,但是那时候用着还是那么流畅。然而今天我们的手机动辄就是3G/4G内存,尽管配置变高了,但是应用对手机配置要求也越来越高,现在的应用都是二十几M,甚至一百M。安装包太大的弊端不多赘述,我们今天就来聊聊如何利用shape减少图片资源占比。

shape属性总结

  • 填充
<solid
       android:color="@android:color/white"/><!-- 填充的颜色 -->

  • 间隔:设置四个方向上的间隔
<!-- 间隔 -->
    <padding
        android:left="2dp"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp"/><!-- 各方向的间隔 -->
  • 大小
  <!-- 大小 -->
    <size
        android:width="50dp"
        android:height="50dp"/><!-- 宽度和高度 -->
  • 圆角:同时设置五个属性,则Radius属性无效
android:Radius="20dp"                           <!-- 设置四个角的半径-->
android:topLeftRadius="20dp"              <!-- 设置左上角的半径 -->
android:topRightRadius="20dp"           <!-- 设置右上角的半径 -->
android:bottomLeftRadius="20dp"      <!-- 设置右下角的半径 -->
android:bottomRightRadius="20dp"    <!-- 设置左下角的半径-->
  • 描边:dashWidth和dashGap属性,只要其中一个设置为0dp,则边框为实现边框
android:width="20dp"                     <!-- 设置边边的宽度 -->
android:color="@android:color/black"  <!-- 设置边边的颜色 -->
android:dashWidth="2dp"                      <!-- 设置虚线的宽度 -->
android:dashGap="20dp"                      <!-- 设置虚线的间隔宽度-->
  • 渐变:gradient用以定义渐变色,可以定义两色渐变和三色渐变,及渐变样式。
<gradient  
    android:type=["linear" | "radial" | "sweep"]    //共有3中渐变类型,线性渐变(默认)/放射渐变/扫描式渐变   
    android:angle="integer"     //渐变角度,必须为45的倍数,0为从左到右,90为从上到下   
    android:centerX="float"     //渐变中心X的相当位置,范围为0~1   
    android:centerY="float"     //渐变中心Y的相当位置,范围为0~1   
    android:startColor="color"   //渐变开始点的颜色   
    android:centerColor="color"  //渐变中间点的颜色,在开始与结束点之间   
    android:endColor="color"    //渐变结束点的颜色   
    android:gradientRadius="float"  //渐变的半径,只有当渐变类型为radial时才能使用   
    android:useLevel=["true" | "false"] />  //使用LevelListDrawable时就要设置为true。设为false时才有渐变效果   

实例(后续会不断更新)

实例
  • 圆形背景
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <size
        android:width="@dimen/shape_height"
        android:height="@dimen/shape_height" />
    <solid android:color="@color/colorAccent" />
</shape>
  • 圆角矩形
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="8dp" />
    <size
        android:width="@dimen/shape_width"
        android:height="@dimen/shape_height" />
    <solid android:color="@color/colorAccent" />
</shape>
  • 圆柱
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/colorAccent" />
    <size
        android:width="@dimen/shape_width"
        android:height="@dimen/shape_height" />
    <corners android:radius="40dp" />
</shape>
  • 环形
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <size
        android:width="@dimen/shape_height"
        android:height="@dimen/shape_height" />
    <stroke
        android:width="10dp"
        android:color="@color/colorAccent" />
</shape>
  • 矩形边框
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <size
        android:width="@dimen/shape_height"
        android:height="@dimen/shape_height" />
    <stroke
        android:width="10dp"
        android:color="@color/colorAccent" />
</shape>
  • 线性渐变
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:endColor="#ff4081"
        android:startColor="#00ff4081"
        android:type="linear" />
</shape>
  • 放射渐变(亲测在5.0设备以下无效果)
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:endColor="#ff4081"
        android:startColor="#00ff4081"
        android:type="linear" />
</shape>
  • 渐变(三色)
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:centerColor="#00ff00"
        android:endColor="#0000ff"
        android:startColor="#ff0000"
        android:type="linear" />
</shape>
  • 扫描渐变
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <gradient
        android:centerColor="#00ff00"
        android:endColor="#0000ff"
        android:startColor="#ff0000"
        android:type="sweep" />
</shape>
  • 发光边框
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <stroke
                android:width="4dp"
                android:color="#0C00F9" />
            <corners android:radius="2dp" />
        </shape>
    </item>
    <item
        android:bottom="4dp"
        android:left="4dp"
        android:right="4dp"
        android:top="4dp">
        <shape>
            <stroke
                android:width="4dp"
                android:color="#FFF" />
            <corners android:radius="2dp" />
        </shape>
    </item>
    <item
        android:bottom="6dp"
        android:left="6dp"
        android:right="6dp"
        android:top="6dp">
        <shape>
            <stroke
                android:width="3dp"
                android:color="#0C00F9" />
            <corners android:radius="2dp" />
        </shape>
    </item>
</layer-list>

小结

安卓开发宝典会持续更新,欢迎大家在评论区提出自己想要实现的功能或者界面,我会尽我所能实现并分享出来。谢谢支持!如果觉得对您有帮助,可以打赏的哦!!!

相关文章

  • Android shape使用总结

    安卓开发宝典文章列表: 比ExpandableListView更强大的分组列表实现 约束布局实战 shape使用总...

  • Android中shape中的属性大全

    Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了...

  • Android shape使用笔记

    Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了...

  • ShapeDrawable的基本探索

    在XML中使用标签编辑shape drawable 直接阅读Android官方文档有详细介绍And...

  • android:shape="line"画一条线

    使用android:shape="line"画一条线

  • 形状图形(shape)

    shape 常用属性 android:shape="rectangle" 矩形,默认值android:shape...

  • Android-Shape

    Android-Shape shape一个用来定义形状的工具,或者说使用画图的,图片用于做背景图。 shape定义...

  • Android Shape使用

    说明 在Android开发中,使用shape可以很方便的帮我们画出想要的背景,相对于png图片来说,使用shape...

  • Android Shape学习

    在Android开发中,使用shape可以很方便的帮我们画出我们想要的背景,相对于png等图片来说,使用shape...

  • Android学习笔记043之shape详解

    Android中提供了shape形状给我们使用,我们可以通过shape画出虚线、圆角、渐变等多种效果,而且,sha...

网友评论

本文标题:Android shape使用总结

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