一、shape 样式:(在drawable新建--》new--》Drawable resource file 并把原父级标签selector改为shape )

<!--只能画水平线,画不了竖线;-->
<!--线的高度是通过stroke的android:width属性设置的;-->
<!--size的android:height属性定义的是整个形状区域的高度;-->
<!--size的height必须大于stroke的width,否则,线无法显示;-->
<!--线在整个形状区域中是居中显示的;-->
<!--线左右两边会留有空白间距,线越粗,空白越大;-->

 
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="line"><strokeandroid:width="5dp"android:color="#4ec5ff"android:dashGap="2dp"android:dashWidth="10dp" />
</shape>
二、style 样式:

<style name="line">

    <item name="android:background">@drawable/buttonlinestyle</item><item name="android:layout_width">match_parent</item><item name="android:layout_height">40dp</item>
</style>
三、Button控件调用style样式:

<!--引用虚线的view需要添加属性android:layerType,值设为"software",否则显示不了虚线。-->

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.ly.blogtest.MainActivity">
<LinearLayoutstyle="@style/line"android:id="@+id/linearLayout"android:orientation="horizontal"android:layerType="software"></LinearLayout>
 
</RelativeLayout>

----------------------------------View虚线或者直线-----------------------------------------------------

---------------------------------画水平线、虚线注意-----------------------------------------------

  1. 只能画水平线,画不了竖线;
  2. 线的高度是通过stroke的android:width属性设置的;
  3. size的android:height属性定义的是整个形状区域的高度;
  4. size的height必须大于stroke的width,否则,线无法显示;
  5. 线在整个形状区域中是居中显示的;
  6. 线左右两边会留有空白间距,线越粗,空白越大;
  7. 引用虚线的view需要添加属性android:layerType,值设为"software",否则显示不了虚线。

---------------------------------划线注意-----------------------------------------------

----------------------------------android:shape属性指定形状------------------------------

  • rectangle: 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等
  • oval: 椭圆形,用得比较多的是画正圆
  • line: 线形,可以画实线和虚线
  • ring: 环形,可以画环形进度条

----------------------------------android:shape属性指定形状------------------------------

----------------------------------shape的属性标签-----------------------------------------

<shape>
            <!-- 实心 -->
            <solid android:color="#ff9d77"/>
            <!-- 渐变 -->
            <gradient
                android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:angle="270" />
            <!-- 描边 -->
            <stroke
                android:width="2dp"
                android:color="#dcdcdc" />
            <!-- 圆角 -->
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>

  • solid: 设置形状填充的颜色,只有android:color一个属性

    • android:color 填充的颜色
  • padding: 设置内容与形状边界的内间距,可分别设置左右上下的距离

    • android:left 左内间距
    • android:right 右内间距
    • android:top 上内间距
    • android:bottom 下内间距
  • gradient: 设置形状的渐变颜色,可以是线性渐变、辐射渐变、扫描性渐变

    • android:type 渐变的类型

      • linear 线性渐变,默认的渐变类型
      • radial 放射渐变,设置该项时,android:gradientRadius也必须设置
      • sweep 扫描性渐变
    • android:startColor 渐变开始的颜色
    • android:endColor 渐变结束的颜色
    • android:centerColor 渐变中间的颜色
    • android:angle 渐变的角度,线性渐变时才有效,必须是45的倍数,0表示从左到右,90表示从下到上
    • android:centerX 渐变中心的相对X坐标,放射渐变时才有效,在0.0到1.0之间,默认为0.5,表示在正中间
    • android:centerY 渐变中心的相对X坐标,放射渐变时才有效,在0.0到1.0之间,默认为0.5,表示在正中间
    • android:gradientRadius 渐变的半径,只有渐变类型为radial时才使用
    • android:useLevel 如果为true,则可在LevelListDrawable中使用
  • corners: 设置圆角,只适用于rectangle类型,可分别设置四个角不同半径的圆角,当设置的圆角半径很大时,比如200dp,就可变成弧形边了

    • android:radius 圆角半径,会被下面每个特定的圆角属性重写
    • android:topLeftRadius 左上角的半径
    • android:topRightRadius 右上角的半径
    • android:bottomLeftRadius 左下角的半径
    • android:bottomRightRadius 右下角的半径
  • stroke: 设置描边,可描成实线或虚线。

    • android:color 描边的颜色
    • android:width 描边的宽度
    • android:dashWidth 设置虚线时的横线长度
    • android:dashGap 设置虚线时的横线之间的距离

----------------------------------shape的属性标签-----------------------------------------

原文地址:https://www.cnblogs.com/LOVEJIEYING/p/6016591.html

Android自定义虚线相关推荐

  1. android自定义虚线,Android自定义view的方式绘制虚线

    Android自定义view绘制虚线 最近项目中有个需求,通过自定义view的方式绘制虚线 别的不多说先看一眼效果 这个需求在我们的开发中应该是一个很常见的需求了吧,有人会说有更简单的实现方式,对,但 ...

  2. android自定义虚线,Android 绘制虚线

    Android 绘制虚线 AndroidView 简单需求 先来看看这么一个需求 水平虚线 如果需要完成上面的水平虚线,可以这样处理.声明shape,其中dashGap是虚线的间隔宽度,dashWid ...

  3. Android自定义view详解,使用实例,自定义属性,贝塞尔曲线

    //只会触发执行onDraw方法,只会改变绘制里面的内容,条目的绘制 invalidate(); //只会触发执行onDraw方法,但是可以在子线程中刷新 postInvalidate(); //vi ...

  4. android 车辆轨迹,Android自定义view实现车载可调整轨迹线

    本文实例为大家分享了Android自定义view完成车载可调整轨迹线的具体代码,供大家参考,具体内容如下 同事做的view,拿过来做个记录. /** * */ package com.text.myv ...

  5. Android 自定义下拉列表

    Android 下拉列表也是一个比较常用的控件,但是Android自带的下拉框样式效果较差,没办法,只好自己来自定义一个.其实主要是利用弹窗来实现的,看一下效果图先~~ 我这边仅仅是实现简单的自定义控 ...

  6. Android 自定义View合集

    http://blog.csdn.net/u011507982/article/details/51199644 自定义控件学习  https://github.com/GcsSloop/Androi ...

  7. android 自定义特效,Android自定义View之高仿QQ健康

    我们都知道自定义View一般有三种直接继承View.继承原有的控件对控件的进行修改.重新拼装组合,最后一种主要针对于ViewGroup.具体的怎么做不是本文的所涉及的内容(本文是基于第一种方式实现的) ...

  8. Android自定义View之画圆环(进阶篇:圆形进度条)

    前言: 如果你想读懂或者更好的理解本篇文章关于自定义圆环或圆弧的内容.请你务必提前阅读下Android自定义View之画圆环(手把手教你如何一步步画圆环).在这篇文章中,详细描述了最基本的自定义圆环的 ...

  9. Android自定义View之Paint绘制文字和线

    Android自定义View系列 Android自定义View注意事项 Android自定义View之图像的色彩处理 Android自定义View之Canvas Android自定义View之轻松实现 ...

最新文章

  1. 一个比较保守的404页面
  2. 你最喜欢的一张美女图片?
  3. 白话解析:一致性哈希算法 consistent hashing
  4. jQuery利用JSONP解决AJAX跨域请求
  5. html双翼布局,第19题 CSS如何实现双飞翼布局?
  6. PyQt5树形结构控件QTreeWidget操作
  7. 生成证书密钥RequestsDependencyWarning:Old version of cryptography ([1, 2, 3]) may cause slowdown.
  8. k8s包管理器helm_K8S 实战(十九)| K8S 包管理 Helm
  9. mysql建表主键_常见的MySQL命令大全second
  10. python多线程图像识别_Python 多线程抓取图片效率对比
  11. debian 安装 php,Ubuntu/Debian上安装Nginx+php环境详细教程
  12. 关闭防火墙linux 16.04,如何在Ubuntu 16.04上配置和设置防火墙
  13. 离散傅里叶变换终极推导
  14. 如何实现 ASP.NET Core WebApi 的版本化
  15. 中资美元债这么膨胀,个人投资者怎么买?
  16. axure中图表背影_Axure制作可视化图表的几种方法
  17. Fabrie:PPT有风险,设计师请停用
  18. 浅析LruCache原理
  19. 计算机组成原理实验二:运算器实验
  20. 三步下载有3D封装的Altium designer官方库

热门文章

  1. Android手机FOTA升级的大概流程介绍
  2. 邮箱服务器搜索,【分享】如何从Exchange 服务器端搜索邮件
  3. python标书制作辅助脚本pandas
  4. 求助,为什么苹果系统安装了endnote了WPS检测不到
  5. RNN-递归神经网络
  6. 产品经理必须懂的【测试知识】
  7. 【经典面试题】JS作用域、作用域链、预解析
  8. 电脑的硬件性能怎么看
  9. php销售清单录入,Netsuite SuiteTalk – 通过PHP请求客户发票清单
  10. Facebook广告数据