使用shape自定义TextView的三态

原创 2016年05月31日 22:22:56

方法:

1.为TextView的android:background指定一个selector xml文件,

2.在selector xml文件中为三态指定shape  xml文件

这样,TextView就有了三态变化,并有shape控制(注意TextView的三态要想起作用,需要给它增加一个点击事件)

 <TextView
            android:clickable="true"
            android:background="@drawable/text_selector"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            android:layout_marginTop="10dip"
            android:text="重新进入设置向导"
            android:textSize="18sp"
            android:onClick="reEnterSetup"
            />
selector文件

text_selector.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" 
        android:drawable="@drawable/text_shape_pressed" />
    <item android:state_focused="true" android:state_enabled="true"
        android:drawable="@drawable/text_shape_pressed" />
    <item
         android:drawable="@drawable/text_shape_nomal" />
</selector>
shape文件

text_shape_pressed.xml

<?xml version="1.0" encoding="utf-8"?>
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <corners
            android:radius="5dip"
            />
        <gradient
            android:endColor="#ff0000"
            android:startColor="#0000ff"
           />
        
        
         <stroke
            android:width="2dip"
            />
         
        <solid
            android:color="#55000000" />
       
    </shape>

text_shape_nomal.xml

<?xml version="1.0" encoding="utf-8"?>
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <corners
            android:radius="5dip"
            />
        <gradient
            android:endColor="#ff0000"
            android:startColor="#0000ff"
           />
        
        
         <stroke
            android:width="2dip"
            />
         
        <solid
            android:color="#ffffff" />
       
    </shape>







版权声明:本文为博主原创文章,转载请注明出处

Android代码实现Shape,自定义TextView

我的上一篇博客代码实现shape(GradientDrawable详解)在上一篇博客中已经实现了自定义GradientDrawable,但是 setBackground(Drawable);该方法只有...
  • yangyahuiguo
  • yangyahuiguo
  • 2016年08月17日 14:06
  • 1739

Android开发之Shape的使用(为TextView等空间添加边框)

在Android开发中,我们想为控件添加边框,可以使用Shape。 首先,我先简单介绍一下Shape。 solid:填充 gradient:渐变 stroke:描边 corners:...
  • u010165004
  • u010165004
  • 2015年05月23日 23:27
  • 1794

Android中shape的使用/两边带半圆的配置

一、在res/drawable文件夹下创建一个名为gradient_box的xml文件: shape drawable xml文件中定义的一个几何图形,定义在res/drawab...
  • zzy7075
  • zzy7075
  • 2014年12月29日 11:23
  • 21155

自定义TextView 灵活使用Shape实现边框

效果: 一般写法,使用shape:
  • psmmsp
  • psmmsp
  • 2017年05月05日 10:58
  • 274

ANDROID SHAPE画圆形背景实现圆形TextView

xml version="1.0" encoding="UTF-8"?> shape xmlns:android="http://schemas.android.com/apk/res/andro...
  • lc547913923
  • lc547913923
  • 2016年07月21日 14:42
  • 1481

自定义按钮三态

使按钮的点击,鼠标移入,鼠标移出,都有不同的图片显示 方法是android:background属性值指定为布局文件,布局文件中指定三态图片 1.android:background布局文件:bu...
  • rankun1
  • rankun1
  • 2016年05月31日 22:04
  • 1347

自定义带shape的TextView

我们在项目中,经常会遇到对TextView添加不同的shape来实现不同的效果,但是这样的一个缺点是造成了各种xml文件混杂在项目中,因此萌发了本文自定义view的想法,实现方式很简单,就是继承了Te...
  • Ivenes
  • Ivenes
  • 2017年06月28日 09:23
  • 201

Android自定义TextView边框颜色(动态改变边框颜色以及字体颜色)

最近写了一个带边框的TextView,因为项目中有许多地方需要用到一个带边框的TextView,而且需要根据不同的状态显示不同的边框颜色,当时的第一反应就是用shape做,但后来转念一想这要需要定义多...
  • lplj717
  • lplj717
  • 2016年10月10日 14:50
  • 3328

带三态复选框的TreeView

样式如下图!        这种带三态复选框的TreeView可以显示出 下级节点是否全部选中,是否有选中,在很多应用程序的开发中都可能会用到!    代码如下:// ----------------...
  • mengyao
  • mengyao
  • 2007年08月13日 18:52
  • 4369

自定义控件shape详解

[TOC] android开发中需要使用自定义资源文件,shape文件可以做成任意形状经常用作背景色。 在AS中可以在drawable文件下右键新建resource file 然后在文件内将标题改...
  • qq_34767498
  • qq_34767498
  • 2016年07月01日 17:56
  • 600
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用shape自定义TextView的三态
举报原因:
原因补充:

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