加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 教程 > 正文

Android自定义Shape 加上阴影shadow之技巧

发布时间:2021-12-18 17:58:48 所属栏目:教程 来源:互联网
导读:Android支持自定义Shape, 以画出需要的形状,可以作为TextView, EditText, Button的背景drawable资源。Shape很简单,就是一个XML文件,SDK文档里描述其格式如下: ?xml version=1.0 encoding=utf-8? shape xmlns:android=http://schemas.android.com/apk/re

Android支持自定义Shape, 以画出需要的形状,可以作为TextView, EditText, Button的背景drawable资源。Shape很简单,就是一个XML文件,SDK文档里描述其格式如下:
 
<?xml version="1.0" encoding="utf-8"?>  
<shape  
    xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape=["rectangle" | "oval" | "line" | "ring"] >  
    <corners  
        android:radius="integer"  
        android:topLeftRadius="integer"  
        android:topRightRadius="integer"  
        android:bottomLeftRadius="integer"  
        android:bottomRightRadius="integer" />  
    <gradient  
        android:angle="integer"  
        android:centerX="integer"  
        android:centerY="integer"  
        android:centerColor="integer"  
        android:endColor="color"  
        android:gradientRadius="integer"  
        android:startColor="color"  
        android:type=["linear" | "radial" | "sweep"]   
        android:usesLevel=["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>  
其支持的属性没有shadow, 做Web前端开发的同学写CSS可以很方便地加一个shadow属性值,如何给Android Shape加一个shadow,以得到类似的效果呢?
 
答案是使用layer-list !   直接上代码如下:
 
<?xml version="1.0" encoding="utf-8"?>  
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
  
    <item>  
        <shape android:shape="rectangle">  
            <solid android:color="#792a03" />  
            <corners android:radius="19dp" />  
        </shape>  
    </item>  
       
    <item  android:top="1px">  
        <shape android:shape="rectangle">  
            <gradient android:startColor="#ffdb8f" android:endColor="#ffdb8f"  
                android:angle="270" />  
            <padding android:left="5dp" android:top="3dp" android:right="5dp"  
                android:bottom="3dp" />  
            <corners android:radius="20dp" />  
        </shape>  
  
    </item>  
  
 </layer-list>  
将以上xml存成btn_test, 放到res/drawable/目录下。 将该drawable xml设为一个TextView的backgroiund,
 
<TextView  
       android:background="@drawable/btn_test"  
  
        android:layout_marginTop="20dip"  
        android:layout_marginLeft="5dip"  
    android:textColor="#792a03"            
           
        android:text="1天2小时14分20秒"  
       android:layout_width="wrap_content"    
       android:layout_height="wrap_content" />  

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读