Android——shape学习笔记

上两篇讲了布局控件一些常用的属性介绍。今天讲下shape。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="10dp"/>
    <solid android:color="@android:color/black"/>
    <stroke android:color="@color/colorAccent" android:width="1px"/>
</shape>

shape有几种形状:
android:shape=“rectangle|line|oval|ring”// 矩形、线条、椭圆、圆环
shape有几种属性:
corners:圆角半径
gradient:颜色渐变
padding:内边距
size:尺寸大小
solid:填充颜色
stroke:边框
下面将一一介绍各个属性都有哪些参数可以设置:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:useLevel="false"// 必须为false,否则无法显示
    android:innerRadiusRatio="2.5"// 比率=圆环宽度/圆环内径
    android:innerRadius="20dp"// 圆环内径
    android:thickness="10dp"// 圆环厚度
    android:thicknessRatio="2.5"// 比率=圆环宽度/圆环厚度
    android:tint="@color/colorAccent"// shape颜色,solid颜色会失效
    >
	<corners
        android:bottomLeftRadius="10dp"// 坐下角
        android:bottomRightRadius="10dp"// 右下角
        android:topLeftRadius="10dp"// 左上角
        android:topRightRadius="10dp"/>// 右上角
    <corners
        android:radius="10dp" />
    这两段代码效果是一样的,都是表示圆角半径为10dp。
	<gradient
        android:angle="45"// 渐变角度,只能是45的倍数
        android:startColor=""// 渐变的初始颜色
        android:endColor=""// 渐变的终止颜色
        android:centerColor=""// 渐变中心的颜色
        android:centerX="50%"// 渐变中点的x坐标:float:0~1
        android:centerY="50%"// 渐变中点的y坐标:float:0~1
        android:gradientRadius="0dp"// 渐变半径,type=radial
        android:type="sweep|radial|linear"// 渐变效果:扫描、溅射、线性
        android:useLevel="true|false"/>// 暂未用过
	<padding // 内边距
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp"/>
	<size // 设置图形固定大小
        android:height="10dp"
        android:width="200dp"/>
    <solid // 设置填充图形的颜色
	    android:color="@android:color/black"/>
	<stroke // 设置线条边框
        android:color="@android:color/black"
        android:width="1px"// 边框宽度
        android:dashGap="10dp"// 虚线间隙
        android:dashWidth="10dp"/> // 虚线宽度

注意:当shape="line"时,View的android:layout_height(size的height)值要比stroke的width大,否则不会显示;当画虚线时,需要关闭硬件加速,可再View的布局中添加android:layerType=“software”,当然还有其他方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值