Android设置虚线、圆角、渐变

原创 2013年08月13日 13:53:32

有图又真相,先上图再说。


点击效果:




设置虚线:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line" >
    <stroke
        android:dashGap="3dp"
        android:dashWidth="6dp"
        android:width="1dp"
        android:color="#63a219" />
	<!-- 虚线的高度 -->
    <size android:height="1dp" />
</shape>

其中,破折线的宽度为dashWith,破折线之间的空隙的宽度为dashGap,当dashGap=0dp时,为实线


设置圆角:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">
    <!-- 填充颜色 -->
    <solid android:color="#FFFFFF"></solid>
    <!-- 线的宽度,颜色灰色 -->
    <stroke android:width="1dp" android:color="#63a219"></stroke>        
    <!-- 矩形的圆角半径 -->
    <corners android:radius="10dp" />       
</shape>

设置渐变填充和四个圆角半径:
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">
    <!--分別對應上面左圆角的半径,上面右圆角的半径,下面左圆角的半径,下面右圆角的半径-->
    <corners  
          android:topLeftRadius="0dp"
          android:topRightRadius="7dp"
          android:bottomLeftRadius="0dp"
          android:bottomRightRadius="7dp"/>
    <!--設置漸變-->
    <gradient android:startColor="#9cff00" 
          android:endColor="#197600"
          android:angle="270"/>
    <stroke   
        android:width="1dp" 
        android:color="#63a219" /> 
</shape>


设置渐变点击效果:

<style name="list_item_top">
	<item name="android:clickable">true</item>
	<item name="android:focusable">true</item>
	<item name="android:paddingTop">10dip</item>
	<item name="android:paddingBottom">10dip</item>
	<item name="android:paddingLeft">10dip</item>
    	<item name="android:paddingRight">10dip</item>
    	<item name="android:gravity">center_vertical</item>
    	<item name="android:background">@drawable/background_view_rounded_top</item>
</style>

<?xml version="1.0" encoding="UTF-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetLeft="1.0px"
    android:insetRight="1.0px" >

    <selector>
        <item android:state_pressed="true">
            <shape>
                <gradient
                    android:angle="270.0"
                    android:endColor="@color/base_end_color_pressed"
                    android:startColor="@color/base_start_color_pressed" />

                <corners
                    android:bottomLeftRadius="0.0dip"
                    android:bottomRightRadius="0.0dip"
                    android:radius="2.0dip"
                    android:topLeftRadius="10.0dip"
                    android:topRightRadius="10.0dip" />
                
                <stroke 
                    android:width="1dp" 
                    android:color="#eededede" />
            </shape>
        </item>
        <item>
            <shape>
                <gradient
                    android:angle="270.0"
                    android:endColor="@color/base_end_color_default"
                    android:startColor="@color/base_start_color_default" />

                <corners
                    android:bottomLeftRadius="0.0dip"
                    android:bottomRightRadius="0.0dip"
                    android:radius="2.0dip"
                    android:topLeftRadius="11.0dip"
                    android:topRightRadius="11.0dip" />
                
                <stroke 
                    android:width="1dp" 
                    android:color="#eededede" />
            </shape>
        </item>
    </selector>

</inset>



重新补充:好久没有关注自己的博客,没有注意到各位的评论,关于4.0以上设备虚线会变实线的问题,下面几位仁兄已经给出了答案,

代码中可以添加:

line.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

xml中可以添加:

android:layerType="software"

谢谢大家的参与!

源码免费下载地址:免费下载

http://download.csdn.net/detail/lan410812571/5925371




版权声明:本文为博主原创文章,未经博主允许 也可 随意转载。

Android画一条虚线

首先在drawable里面创建一个bg_dotted_line.xml代码如下
  • u013700502
  • u013700502
  • 2016年07月21日 14:54
  • 9419

Android中绘制虚线

概述今天给大家介绍两种实现虚线的方式方式一:利用shape绘制
  • Small_Lee
  • Small_Lee
  • 2016年08月08日 17:03
  • 11314

Android之shape设置虚线无效果

hape能画直线,虚线,矩形,圆形等,当然也可以画虚线,刚开始弄了半天就是没有效果。不懈的翻阅博客,各种尝试,总算解决了这个问题。1.XML中定义shape,命名为 ...
  • IO_Field
  • IO_Field
  • 2016年10月17日 16:58
  • 1552

android虚线

一条虚线 dash_line.xml
  • wangyanchao000
  • wangyanchao000
  • 2016年08月25日 10:45
  • 285

Android实现虚线的方法

有图又真相,先上图再说。点击效果:设置虚线:[html] view plaincopyxml version="1.0" encoding="utf-8"?>  shape xmlns:android...
  • yayun0516
  • yayun0516
  • 2015年09月02日 14:58
  • 2151

android用shape画虚线,怎么也不显示

android用shape画虚线,根本就无法显示
  • qiuqingpo
  • qiuqingpo
  • 2014年10月23日 11:56
  • 29265

Android 绘制虚线

简单需求先来看看这么一个需求 水平虚线如果需要完成上面的水平虚线,可以这样处理。 声明shape,其中dashGap是虚线的间隔宽度,dashWidth是实线的间隔宽度,stroke翻译过来是名词,...
  • Linux1s1s
  • Linux1s1s
  • 2015年10月26日 15:20
  • 2189

Android画虚线却显示为实线的解决方法

  • xukejun_babyy
  • xukejun_babyy
  • 2014年08月20日 18:39
  • 971

android中xml虚线不显示,或者只显示实线

前言:关于虚线显示在网上很多现成的blog,但是我还是自己写下(参考+实践完成)。怕哪天忘了找也方便。 小坑集合: 问题描述:在android中drawable定义了一条虚线的shape文件,但是在有...
  • u012846783
  • u012846783
  • 2016年07月26日 17:33
  • 2001

Android虚线不显示

项目中用到了虚线,用shape做的,死活显示不出来,试了网上各种方法,也试了自定义view,太难看,还是回到shape,试了半天最终解决,mark一下,希望其他人少踩点坑。 先贴代码吧 dashed_...
  • yxx_515
  • yxx_515
  • 2016年03月31日 16:50
  • 637
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android设置虚线、圆角、渐变
举报原因:
原因补充:

(最多只允许输入30个字)