美文网首页Android
android使用shape绘图

android使用shape绘图

作者: 刘孙猫咪 | 来源:发表于2017-07-01 18:38 被阅读0次

在项目的开发中会涉及到很多背景的设置和使用,可以使用设计师切好的图片,但是对于一些纯色的背景来说建议可以使用shape绘图,使用xml的方式来绘制的可以根据需要进行绘制和更改,同时比图片要小,也不会导致apk过大,使用的时候在res/drawable下新建一个xml文件;

QQ截图20170701173358.jpg

输入xml文件的名称,选择shape,点击确定就建好了,首先指定绘制的类型;

QQ截图20170701173936.jpg

这里有四种类型:rectangle(矩形) oval(椭圆形) line(直线形) ring(环形) ;这里还有个android:useLevel;如果当做是LevelListDrawable使用时值为true,否则为false;接下来的话有这些属性可以设置;

QQ截图20170701174452.jpg

corners圆角:

android:radius  所有圆角
android:topRightRadius  右上圆角
android:topLeftRadius  左上圆角
android:bottomLeftRadius  左下圆角
android:bottomRightRadius  右下圆角

stroke描边:

<stroke 
        android:width=""  描边的宽度
        android:color="" 描边的颜色
        android:dashWidth=""  虚线的宽度,值为0时是实线
        android:dashGap=""   虚线的间隔 

gradient渐变效果

<gradient
        android:angle=""  渐变角度,必须为45的倍数,0为从左到右,90为从上到下
        android:centerColor=""  渐变中间点的颜色
        android:centerX=""  渐变中心X的相当位置
        android:centerY=""  渐变中心Y的相当位置
        android:endColor=""  渐变终点的颜色
        android:gradientRadius=""  渐变的半径
        android:startColor=""  渐变开始的颜色
        android:type=""  渐变的类型  有三种;linear(线性渐变),radial(放射渐变)sweep(扫描式渐变)
        android:useLevel=""  使用LevelListDrawable时就要设置为true,设为false时才有渐变效果  

padding内边距

<padding 
        android:bottom=""  下边距
        android:left=""  左边距
        android:right=""  右边距
        android:top=""  上边距

size大小

<size 
        android:width=""  宽
        android:height=""  高

solid填充的颜色

<solid
       android:color=""  填充颜色

上面这些基本就是shape绘制时会用到的一些属性,下面是绘制的一些基本效果:

QQ截图20170701180514.jpg

圆:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    android:useLevel="false">
    <solid 
           android:color="@android:color/holo_red_dark" />
</shape>

在圆1的基础上添加一个描边就可以得到圆2的效果:

<stroke 
        android:width="2dp"
        android:color="@color/colorPrimary"/>

在圆2的基础上修改下填充的颜色就可以得到圆3的效果:

<solid android:color="@android:color/transparent"/>
QQ截图20170701181243.jpg
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    android:useLevel="false">
    <solid android:color="@android:color/holo_red_dark" />
</shape>

这样就实现了矩形1的效果,在矩形1的基础上添加一个描边就得到矩形2的效果:

<stroke 
        android:width="2dp"
        android:color="@color/colorPrimary"/>

矩形2的基础上添加圆角就得到矩形3的效果:

<corners 
        android:radius="7dp"/>

在矩形3的基础上去掉左下和右下圆角就得到矩形4的效果:

<corners 
        android:topRightRadius="7dp"
        android:topLeftRadius="7dp"/>

在矩形3的基础上去掉左上和右上圆角就得到矩形5的效果:

<corners 
        android:bottomLeftRadius="7dp"
        android:bottomRightRadius="7dp"/>

当然了在矩形3的基础上去掉描边就可以得到矩形6的效果了;
圆+描边+渐变效果:

QQ截图20170701183029.jpg
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    android:useLevel="false">

    <solid android:color="@android:color/holo_red_dark" />
    <corners android:radius="7dp" />
    <stroke
        android:width="2dp"
        android:color="@android:color/holo_orange_dark" />
    <gradient
        android:centerColor="@android:color/black"
        android:endColor="@color/colorPrimary"
        android:startColor="@color/colorAccent"
        android:type="sweep" />

</shape>

圆角矩形+描边+渐变效果


QQ截图20170701183517.jpg

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    android:useLevel="false">

    <solid android:color="@android:color/holo_red_dark" />
    <corners android:radius="7dp" />
    <stroke
        android:width="2dp"
        android:color="@android:color/holo_orange_dark" />
    <gradient
        android:centerColor="@android:color/black"
        android:endColor="@color/colorPrimary"
        android:startColor="@color/colorAccent"
        android:type="sweep" />

</shape>

shape绘图可以弄出很多不同的效果,开发中自己可以根据自己的需要进行属性的设置,如果上面写的不多的地方,欢迎交流。

相关文章

  • android使用shape绘图

    在项目的开发中会涉及到很多背景的设置和使用,可以使用设计师切好的图片,但是对于一些纯色的背景来说建议可以使用sha...

  • Egret引擎 API

    Egret API egret.Shape 此类用于使用绘图应用程序编程接口 (API) 创建简单形状。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使用shape绘图

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