• Android开发系列(十八):自己定义控件样式在drawable目录下的XML实现


    在Android开发的过程中,我们常常须要对控件的样式做一下改变,能够通过用添加背景图片的方式进行改变,可是背景图片放多了肯定会使得APK文件变的非常大。

    我们能够用自己定义属性shape来实现。


    shape:

    gradient   -- 相应颜色渐变。 startcolor、endcolor就不多说了。 android:angle 是指从哪个角度開始变。

    solid      --  填充。

    stroke   --  描边。

    corners  --  圆角。

    padding   -- 定义内容离边界的距离。


    我们先来看一下效果:




    下边我们用详细的代码来演示一下:

    首先,新建一个项目,然后我们在main.xml编辑:

    <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
      <TextView 
         	android:layout_width="fill_parent" 
    		android:layout_height="wrap_content"
    		android:layout_marginTop="10dp"
          	android:text="演示文本"
          	android:textSize="14pt"
          	android:textColor="#565656"
          	android:background="@drawable/bg_border"
          />
      <!-- 通过android:drawableLeft绘制一张图片 -->	
    <TextView  
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    	android:text="演示文本2"
    	android:textSize="24pt"
    	android:background="@drawable/bg_border2"
    	/>
    
    </LinearLayout></span>
    能够看到,在上边的两个TextView的android:background属性,用到了@drawable/bg_border和@drawable/bg_border2这两个文件


    然后,我们在@drawable目录下边创建这两个Android xml文件:

    bg_border.xml:

    <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">    
    	<!-- 填充:设置背景颜色 -->
    	<solid android:color="#ffffff"/>
    	<!-- 设置边框 -->
    	<stroke  
    	    android:width="5px"
    	    android:color="#873600"
    	    android:dashWidth="5dip"
    	    />
    	<!-- 定义内边距 -->
    	<padding 
    	    android:top="20dip"
    	    />  
    	    
    	    
    </shape></span>


    bg_border2.xml:

    <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <!-- 指定圆角矩形的4个圆角的半径 -->
       	<corners android:topLeftRadius="20px"
        android:topRightRadius="5px"
        android:bottomRightRadius="20px"
        android:bottomLeftRadius="5px"/>
       	<!-- 指定边框线条的宽度和颜色 -->
    	<stroke android:width="4px" android:color="#f0f" />
    	<!-- 指定使用渐变背景色,使用sweep类型的渐变
    	颜色从红色→绿色→蓝色 -->
    	<gradient android:startColor="#f00"
    	    android:centerColor="#0f0"
    	    android:endColor="#00f"
    	    android:type="sweep"/>
    </shape></span>


    我们看下我们的project文件夹视图:







  • 相关阅读:
    延时调用的php代码
    mysql 官网下载太慢了,来这里!!!
    解决react-native 运行报错:Entry, ":CFBundleIdentifier", Does Not Exist
    mongodb增删改查常用命令总结
    Linux 查看文件内容(8)
    Linux mv命令(7)
    Linux文件拷贝(6)
    Linux 创建与删除(5)
    Linux cd命令(4)
    ls 命令通配符(3)
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4069552.html
Copyright © 2020-2023  润新知