美文网首页
Android 背景样式shape - rectangle矩形

Android 背景样式shape - rectangle矩形

作者: IT一书生 | 来源:发表于2018-03-16 13:58 被阅读32次

概述

TextView、Button、EditText、ProgressBar、Toast、Checkbox等控件的样式背景,都可以用shape来实现,可以优化资源的使用,在一个项目中,个人觉得各种资源统一管理起来最好,公用一套,方便后期管理,不管以后是你自己管理,还是有后来者接手,都能大大提高工作效率,相信你也不想接手一个写的很乱的项目,都说“见字如见人”,作为一个程序员来说,咱们的代码就是咱们的字,最起码得让人觉得“嗯!这人还不错”。

闲话不多说了,下面记载一下个人总结的shape用法

shape属性:

先来了解一下shape的各个属性

<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
    <!-- rectangle:矩形、圆角矩形、弧形等  
        oval:圆、椭圆  
        line:线、实线、虚线  
        ring:环形 -->  
  
    <corners  <!-- 圆角 只适用于rectangle类型-->  
        android:radius="integer"    <!-- 圆角半径 -->  
        android:bottomLeftRadius="integer"  
        android:bottomRightRadius="integer"  
        android:topLeftRadius="integer"  
        android:topRightRadius="integer" />  
  
    <gradient  <!-- 渐变色 -->  
        <!-- 渐变的角度,线性渐变时才有效,必须是45的倍数 -->  
        android:angle="integer"  
        <!-- 渐变中心的相对X、Y坐标,放射渐变时才有效 -->  
        android:centerX="integer"  
        android:centerY="integer"  
        <!-- 渐变的半径,放射渐变(radial)时才有效-->  
        android:gradientRadius="integer"  
        <!-- 渐变开始、中心、结束的颜色 -->  
        android:startColor="color"  
        android:centerColor="integer"  
        android:endColor="color"  
        <!-- 渐变的类型 linear线性、radial放射、sweep扫描-->  
        android:type=["linear" | "radial" | "sweep"]  
        <!--  是否可在LevelListDrawable中使用 -->  
        android:useLevel=["true" | "false"] />  
  
    <padding  <!-- 设置内容与形状边界的内间距 -->  
        android:left="integer"  
        android:top="integer"  
        android:right="integer"  
        android:bottom="integer" />  
  
    <size  <!-- 大小 -->  
        android:width="integer"  
        android:height="integer" />  
  
    <solid  <!-- 填充的颜色 -->  
        android:color="color" />  
  
    <stroke  <!-- 刻画边线 -->  
        android:width="integer"  
        android:color="color"  
        android:dashWidth="integer"   <!-- 虚线长度 -->  
        android:dashGap="integer" />  <!-- 虚线间隔 -->  
</shape> 

注:shape的属性基本上就那么多了,个别生疏的属性都有相应的注释,这里不做过多介绍,还有些特定场景下用的属性,下面还会有介绍

shape - rectangle矩形效果图

image

代码

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="vertical"  
    android:gravity="center"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent">  
  
    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="加了内间距的矩形"  
        android:textSize="20sp"  
        android:textColor="#ff0000"  
        android:background="@drawable/text_shape"/>  
  
    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_marginTop="20dp"  
        android:text="圆角矩形"  
        android:textSize="20sp"  
        android:textColor="#ff0000"  
        android:background="@drawable/text_shape1"/>  
  
    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_marginTop="20dp"  
        android:text="弧形边矩形"  
        android:textSize="20sp"  
        android:textColor="#ff0000"  
        android:background="@drawable/text_shape5"/>  
  
    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_marginTop="20dp"  
        android:text="颜色渐变的矩形"  
        android:textSize="20sp"  
        android:textColor="#ff0000"  
        android:background="@drawable/text_shape2"/>  
  
    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_marginTop="20dp"  
        android:text="实线描边的矩形"  
        android:textSize="20sp"  
        android:textColor="#ff0000"  
        android:background="@drawable/text_shape3"/>  
  
    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_marginTop="20dp"  
        android:text="虚线描边的矩形"  
        android:textSize="20sp"  
        android:textColor="#ff0000"  
        android:background="@drawable/text_shape4"/>  
</LinearLayout>  

shape背景代码

  • text_shape
<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
    <solid  
        android:color="#990000ff"/>  
    <padding  
        android:bottom="15dp"  
        android:left="30dp"  
        android:right="30dp"  
        android:top="15dp" />  
</shape> 
  • text_shape1
<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
    <solid  
        android:color="#990000ff"/>  
    <padding  
        android:bottom="15dp"  
        android:left="30dp"  
        android:right="30dp"  
        android:top="15dp" />  
    <corners  
        android:radius="15dp"/>  
</shape> 
  • text_shape2
<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
    <solid  
        android:color="#990000ff"/>  
    <padding  
        android:bottom="15dp"  
        android:left="30dp"  
        android:right="30dp"  
        android:top="15dp" />  
    <gradient  
        android:startColor="#ff0000"  
        android:centerColor="#00ff00"  
        android:endColor="#0000ff"/>  
</shape> 
  • text_shape3
<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
    <solid  
        android:color="#ffffff"/>  
    <padding  
        android:bottom="15dp"  
        android:left="30dp"  
        android:right="30dp"  
        android:top="15dp" />  
    <stroke  
        android:width="2dp"  
        android:color="#00ff00"/>  
</shape> 
  • text_shape4
<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
    <solid  
        android:color="#ffffff"/>  
    <padding  
        android:bottom="15dp"  
        android:left="30dp"  
        android:right="30dp"  
        android:top="15dp" />  
    <stroke  
        android:width="2dp"  
        android:color="#00ff00"  
        android:dashWidth="4dp"  
        android:dashGap="4dp"/>  
</shape>  
  • text_shape5
<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
    <solid  
        android:color="#990000ff"/>  
    <padding  
        android:bottom="15dp"  
        android:left="30dp"  
        android:right="30dp"  
        android:top="15dp" />  
    <corners  
        android:radius="30dp"/>  
</shape>

写在后面的

  • rectangle是默认的形状,也是用得最多的形状,一些文字背景、按钮背景、控件或布局背景等。
  • 根据不同的需求,可以绘制出相应的背景,省的都用背景图片了。
  • 后面还会总结一下shape的其他形式的用法。有什么不足之处,欢迎提出,有分享才有进步。

相关文章

网友评论

      本文标题:Android 背景样式shape - rectangle矩形

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