首页 > 其他分享 >shape基本用法及全部属性定义

shape基本用法及全部属性定义

时间:2023-03-20 10:01:59浏览次数:41  
标签:2dp color 用法 shape 10dp integer android 属性


如果你对Android系统自带的UI控件感觉不够满意,可以尝试下自定义控件,我们就以Button为例,很早以前Android123就写到过Android Button按钮控件美化方法里面提到了xml的selector构造。当然除了使用drawable这样的图片外今天Android开发网谈下自定义图形shape的方法,对于Button控件Android上支持以下几种属性shape、gradient、stroke、corners等。

      我们就以目前系统的Button的selector为例说下:

<shape>
<gradient
android:startColor="#ff8c00"
android:endColor="#FFFFFF"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#dcdcdc" />
<solid android:color="#ff9d77"/>
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>



对于上面,这条shape的定义,分别为渐变,在gradient中startColor属性为开始的颜色,endColor为渐变结束的颜色,下面的 angle是角度。接下来是stroke可以理解为边缘,corners为拐角这里radius属性为半径,最后是相对位置属性padding。



    对于一个Button完整的定义可以为


<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<gradient
android:startColor="#ff8c00"
android:endColor="#FFFFFF"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#dcdcdc" />
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>

<item android:state_focused="true" >
<shape>
<gradient
android:startColor="#ffc2b7"
android:endColor="#ffc2b7"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#dcdcdc" />
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>

<item>
<shape>
<gradient
android:startColor="#ff9d77"
android:endColor="#ff9d77"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#fad3cf" />
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>



  注意Android123提示大家,以上几个item的区别主要是体现在state_pressed按下或state_focused获得焦点时,当当来判断显示什么类型,而没有state_xxx属性的item可以看作是常规状态下。



附shape全部属性定义:


<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape=["rectangle" | "oval" | "line" | "ring"] >
<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"] />
<solid
android:color="color" />
<stroke
android:width="integer"
android:color="color"
android:dashWidth="integer" <!--点划线-->
android:dashGap="integer" />
<padding
android:left="integer"
android:top="integer"
android:right="integer"
android:bottom="integer" />
<corners
android:radius="integer"
android:topLeftRadius="integer"
android:topRightRadius="integer"
android:bottomLeftRadius="integer"
android:bottomRightRadius="integer" />
</shape>

标签:2dp,color,用法,shape,10dp,integer,android,属性
From: https://blog.51cto.com/u_5454003/6131817

相关文章

  • C++ map用法总结(整理)
    C++map用法总结(整理)1,map简介map是STL的一个关联容器,它提供一对一的hash。第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(valu......
  • Linux下的awk用法详解
    (Linux下的awk用法详解)一、awk介绍1.AWK是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫AWK是因为其取了三位创始人AlfredAho,PeterWeinberger,和Br......
  • np.newaxis的用法
    1前言np.newaxis的意思是给数组新增一个维度。“python中矩阵切片维数微秒变化”中介绍了矩阵切片有时候会降低矩阵维度,为保证维度不变,可以用np.newaxis新增一个维度。2......
  • python中两个不同shape的数组间运算规则
    1前言声明:本博客讨论的数组间运算是指四则运算,如:a+b、a-b、a*b、a/b,不包括a.dot(b)等运算,由于numpy和tensorflow中都遵循相同的规则,本博客以numpy为例。众所周......
  • SQL函数大全和用法
    正常Gender字段,因为一些原因,使用了bit类型,0表示男,1表示女,我们在查询的时候,只会显示ture或者falseselectIdas编号,Nameas姓名,Genderas性别FromTable_User......
  • C语言中%d,等等% 的用法,和意义
      转载-----%d是占位符,%是引导符,d表示十进制整数的形式例如我用键盘输入一个整数给变量a写成:scanf("%d",&a);%d占得就是a的位再如我在显示器上输出变量a的值......
  • laravel 单控制器用法
    第一,定义路由Route::get('/hello','UserController');第二,控制定义__invokenamespaceApp\Http\Controllers;useIlluminate\Http\Request;classUserControllerext......
  • webpack性能优化(2):splitChunks用法详解
    之前写的《​​webpack性能优化(0):webpack性能优化概况-优化构建速度​​​》、《​​webpack性能优化(1):分隔/分包/异步加载+组件与路由懒加载​​》如果使用vue-cli,默认......
  • BGP团体属性 community
      默认是internet属性,No_Advertise不通告给邻居No_Export不传出asNo_Export_Subconfed只有在联邦的时候才使用,              ......
  • Python上下文管理器with的用法
    通常我们使用with关键字,作为上下文管理器进入标志。上下文管理器是一个包装任意代码块的对象,当退出上下文管理器时,保证相关的资源能够得到正确处理。最常用的用法是打......