安卓学习之shape总结

Android Studio属性学习(一)——shape属性 一、前提 在这里会讲解shape属性的各个元素,以及效果展示及使用 二、目标 shape 三、内容 1、首先创建一个shape.xml文件以及在布局文件中添加一个按钮用来展示添加属性后的样式 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/... 阅读详情

在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状。

比如花一个简单的圆:

        <?xml version="1.0" encoding="utf-8"?>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval" >
        //oval表示圆,rectangle表示长方形,默认也是长方形,下面的实例默认都是长方形。
        <corners android:radius="5dp" />//半径
        <solid android:color="@android:color/darker_gray"/>//填充的颜色。
        </shape>


我们了解一下Shape下面有哪些标签,都代表什么意思:

solid:填充
android:color指定填充的颜色


gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,

android:angle是渐变角度,必须为45的整数倍。
另外渐变默认的模式为android:type="linear",即线性渐变,

可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。

angle值对应的位置如图:




stroke:描边
android:width="2dp" 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp" 
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离


corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,

同时设置五个属性,则Radius属性无效

android:Radius="20dp"                           设置四个角的半径

android:topLeftRadius="20dp"              设置左上角的半径 
android:topRightRadius="20dp"           设置右上角的半径 
android:bottomLeftRadius="20dp"      设置右下角的半径 
android:bottomRightRadius="20dp"    设置左下角的半径


padding:间隔
可以设置上下左右四个方向的间隔


在这里我们来看一个简单的小例子,ShapDemo,在drawable文件夹下面先定义两个xml文件:

button_bg.xml的内容如下:

  1. <span style='font-family: "Comic Sans MS";'><?xml version="1.0" encoding="utf-8"?>  
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.       
  4.     <!-- 填充 -->  
  5.     <solid android:color="#ff9d77" /> <!-- 定义填充的颜色值 -->  
  6.       
  7.     <!-- 描边 -->  
  8.     <stroke  
  9.         android:width="2dp"   
  10.         android:color="#fad3cf" /> <!-- 定义描边的宽度和描边的颜色值 -->  
  11.       
  12.     <!-- 圆角 -->  
  13.     <corners  
  14.         android:bottomLeftRadius="5dp"  
  15.         android:bottomRightRadius="5dp"  
  16.         android:topLeftRadius="5dp"  
  17.         android:topRightRadius="5dp" /> <!-- 设置四个角的半径 -->  
  18.       
  19.     <!-- 间隔 -->  
  20.     <padding  
  21.         android:bottom="10dp"  
  22.         android:left="10dp"  
  23.         android:right="10dp"  
  24.         android:top="10dp" /> <!-- 设置各个方向的间隔 -->  
  25.   
  26. </shape></span>  
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
	
    <!-- 填充 -->
    <solid android:color="#ff9d77" /> <!-- 定义填充的颜色值 -->
	
    <!-- 描边 -->
    <stroke
        android:width="2dp"	
        android:color="#fad3cf" /> <!-- 定义描边的宽度和描边的颜色值 -->
	
	<!-- 圆角 -->
    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" /> <!-- 设置四个角的半径 -->
	
  	<!-- 间隔 -->
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" /> <!-- 设置各个方向的间隔 -->

</shape>

button_pressed_bg.xml的内容如下:

  1. <span style='font-family: "Comic Sans MS";'><?xml version="1.0" encoding="utf-8"?>  
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <!-- 渐变 -->  
  5.     <gradient  
  6.         android:endColor="#FFFFFF"  
  7.         android:gradientRadius="50"  
  8.         android:startColor="#ff8c00"  
  9.         android:type="radial" />  
  10.       
  11.     <!-- 描边 -->  
  12.     <stroke  
  13.         android:dashGap="3dp"  
  14.         android:dashWidth="5dp"  
  15.         android:width="2dp"  
  16.         android:color="#dcdcdc" />  
  17.       
  18.     <!-- 圆角 -->  
  19.     <corners android:radius="5dp" />  
  20.       
  21.     <!-- 间隔  -->  
  22.     <padding  
  23.         android:bottom="10dp"  
  24.         android:left="10dp"  
  25.         android:right="10dp"  
  26.         android:top="10dp" />  
  27.   
  28. </shape></span>  
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- 渐变 -->
    <gradient
        android:endColor="#FFFFFF"
        android:gradientRadius="50"
        android:startColor="#ff8c00"
        android:type="radial" />
    
    <!-- 描边 -->
    <stroke
        android:dashGap="3dp"
        android:dashWidth="5dp"
        android:width="2dp"
        android:color="#dcdcdc" />
    
    <!-- 圆角 -->
    <corners android:radius="5dp" />
	
    <!-- 间隔  -->
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" />

</shape>

这里说明一点,在描边里面设置了dash参数,使得图形的边变成了虚线。

在drawable文件夹下添加一个selector选择器button.xml文件,内容如下:

  1. <span style='font-family: "Comic Sans MS";'><?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3.   
  4.     <item android:drawable="@drawable/button_pressed_bg" android:state_pressed="true"></item>  
  5.     <item android:drawable="@drawable/button_bg"></item>  
  6.   
  7. </selector></span>  
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/button_pressed_bg" android:state_pressed="true"></item>
    <item android:drawable="@drawable/button_bg"></item>

</selector>

这个文件的意思以前讲过,normal(正常)情况下就显示button_bg,被press(按下)情况下就显示button_pressed_bg。


我们再来看一下layout目录下的activity_main.xml的内容:

  1. <span style='font-family: "Comic Sans MS";'><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent" >  
  5.   
  6.     <Button  
  7.         android:layout_width="wrap_content"  
  8.         android:layout_height="wrap_content"  
  9.         android:background="@drawable/button"  
  10.         android:text="TestShapeButton" />  
  11.   
  12. </RelativeLayout></span>  
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/button"
        android:text="TestShapeButton" />

</RelativeLayout>

直接将background指定为drawable文件夹下的button.xml。


程序运行截图如下:



转载于:https://blog.youkuaiyun.com/bear_huangzhen/article/details/24488337

tkinter表格进阶:5分钟实现CSV数据可视化编辑界面(含右键菜单配置) 本文详细介绍了如何使用Python的tkintertable库快速构建CSV数据可视化编辑界面。通过导入导出CSV数据、深度定制右键菜单(如复制、插入行、删除行)以及实现单元格验证等进阶功能,开发者能在5分钟内创建一个可嵌入自动化流程的专业级桌面数据编辑工具,显著提升数据处理效率。 阅读详情

相关推荐

Dataworks实现接口调用

在本地linux虚拟机(不用在意linux版本),安装Anaconda后配置对应的虚拟环境,将虚拟环境的python包整体打包(路径一般为:~/anaconda/envs/env_name/lib/pyyhon3.7/site-packages):上传资源,将第三方包上传至dataworks(注意:所有上传文件均要打包上传,直接上传文件会乱码导致无法使用):PyODPS,其中PyODSP2的python版本为2.7,PyODSP3的python版本为3.7。:在PyODPS中引用资源,然后开发接口。

hutc_Alan的博客 1681

深度学习中Python的Shape函数使用方法

深度学习中Python的Shape函数使用方法 Python中shape函数主要用于读取数组维度,通过调用shape可以获得研究数组及其对应行列的维度,输入的参数可以是一个常数,也可以是一个矩阵(Matrix)。但是在深度学习中使用Tensorflow框架中会遇到张量(Tensor)此时Shape函数也可以用于获取张量的维度。以下是简单实例: 输入参数为一维数组 输入参数为二维数组 3.输入...

t13870376165的博客 8234

tree_sitter多语言解析器配置实战指南

本文是一份详细的Tree-sitter多语言解析器配置实战指南。文章从零开始,手把手指导如何搭建Python环境、安装指定版本的tree-sitter库、下载并编译多种语言的语法规则,最终构建一个统一的解析器库。通过实战代码演示了如何初始化解析器、解析代码并遍历语法树,旨在帮助开发者高效处理多语言代码分析任务,并分享了高级技巧与常见问题排坑经验。

weixin_29245767的博客 268

Android 使用属性动画实现可折叠布局

刚刚了解属性动画,尝试着写了一个可折叠布局,正好也是项目中用到的。 先上效果图: layout代码 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+i

mac090705的专栏 2166

GD32F103程序烧录全攻略:从SWD到串口的实战指南

本文提供了GD32F103微控制器程序烧录的全面实战指南,详细介绍了SWD、JTAG和串口(ISP)三种主流下载方式。文章重点解析了在Keil MDK中使用ST-Link进行SWD下载的完整步骤,包括硬件连接、软件配置和Flash算法设置,并针对烧录过程中的常见问题提供了实用的排坑解决方案,帮助开发者高效完成程序部署。

weixin_29191669的博客 438

【国产化信创实践】宝兰德bes中间件集成springboot

【国产化信创实践】宝兰德bes中间件集成springboot

项目管理、软件工厂、vue研发、Java研发、中国文化等。 1万+

Android 学习之Drawable-shape使用方法

版权声明本文为 LiKaiRabbit 原创文章,转载时请注明出处。 Android中为了某种图形,被点击改变,控件周边的的效果,我们经常会shape(形状)。shape是通过xml的代码实现,不许要图片适配而且占用空间小,在可以使用shape的情况最好不要用图片。下面我们就来了解一下shape中的属性和实现的效果。 一、shape标签属性 android:shape:

likai_rabbit的博客 1029

软件设计师---计算机系统

软件设计师---计算机系统

我从不打没有准备的仗! 3万+

Android 样式的开发

shape篇 一般用shape定义的xml文件存放在drawable目录下,若项目没有该目录则新建一个,而不要将它放到drawable-hdpi等目录中。 使用shape可以自定义形状,可以定义下面四种类型的形状,通过android:shape属性指定: rectangle: 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等oval: 椭圆形,用得比较多的是画正圆line:

山城木府的博客 1315

锐明技术Crocus系统 DeviceState.do SQL注入漏洞复现

锐明技术Crocus系统 DeviceState.do 接口存在SQL注入漏洞,经过身份验证的远程攻击者除了可以利用SQL注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

0xSec 454

基于 Simulink 的固态变压器(SST)多级协同控制实战教程

《固态变压器多级协同控制仿真指南》摘要: 本教程详细讲解了基于Simulink的固态变压器(SST)三级架构建模与控制方法。核心内容包含:1)搭建级联H桥整流(CHB)、双有源桥(DAB)和逆变器(VSI)的三级主电路;2)提出创新的多级协同控制策略,通过功率前馈实现输入输出级动态匹配;3)给出系统级功率平衡、单元级均压控制的具体实现方案。教程特别强调解决实际工程中的关键问题:代数环处理、软启动设计和刚性系统求解器选择,并提供了硬件在环(HIL)仿真建议。附带的MATLAB代码示例可直接用于实现电容电压均衡

xiaoheshang_123的博客 120

Android Drawable 详解(教你画画!)

参考 1、Android中的Drawable基础与自定义Drawable2、android中的drawable资源3、Android开发之Shape详细解读 Drawable分类 No xml标签 Class类 含义 1 shape ShapeDrawable 特定形状,模型的图样 2 se...

weixin_34221773的博客 506

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

安卓交互之shape的学习

为了实现透明边框的圆角矩形的按钮背景,所以了解了一下shape的各项属性 1.shape中常用的属性如下:     xmlns:android="http://schemas.android.com/apk/res/android"     android:shape=["rectangle" | "oval" | "line" | "ring"] > //有四种属性值,矩形,椭圆,

ElaineTaylor1213的博客 465

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

安卓样式学习:shape,selecter,

(学习自http://keeganlee.me/post/android/20150905) 以前傻傻的觉得drawable就是用来放图片的地方,而对于控件的样式,如宽高颜色等就是在它的属性里直接进行设定。后来在网上下载过大佬的项目,发现里面drawable文件里都是xml文件,还百思不得其解是什么鬼。原来标准的安卓样式是应该在xml文件中进行编写,然后直接应用在控件中的,类似于css。

zhang___yong的博客 446

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android shape学习

android shape学习

wang_shuai_long的博客 392

Android学习—Shape

ShapeDrawable  AnXMLfilethatdefinesageometricshape,includingcolorsandgradients.一个定义几何形状的XML文件,包括颜色和渐变。 简介     作用:XML中定义的几何形状   位置:res/drawable/文件的名称.xml   使用的方法:     Java代码中:R.d...

dengtinghuan4462的博客 128

安卓学习笔记---Android样式的开发:Shape篇以及一系列样式的开发

转载自Keegan小钢 原文链接:http://keeganlee.me/post/android/20151026 Android样式的开发:shape篇 Android样式的开发:selector篇 Android样式的开发:layer-list篇 Android样式的开发:drawable汇总篇 Android样式的开发:View Animation篇 Androi

紫色飞鱼儿的博客 383

android studio 创建shape,Android Studio属性学习(一)——shape属性

一、前提在这里会讲解shape属性的各个元素,以及效果展示及使用二、目标shape三、内容1、首先创建一个shape.xml文件以及在布局文件中添加一个按钮用来展示添加属性后的样式在shape中第一个可以添加的要素是android:shape=“”(可选可不选,可以直接在里面添加颜色形状什么的,直接用在控件上)其中shape中有四个可选要素android:shape="rectangle" 表示...

weixin_42511315的博客 1877

Android——shape学习笔记

android shape

荣羽的博客 459

Android学习之shape属性

1)stroke 描述:stroke边框效果,相当于html中的盒子模型的border 属性:android:width边框的宽度            android:color边框的颜色 如果想要边框为虚线:则需要dashWidth和dashGap这两个属性一起用 android:dashWidth设置的是蓝色虚线的长度,值为0时,表示的是实线,值大于0表示的是虚线,值越大,下图

Mr_Road的博客 649

android shape 资源的学习笔记

Android的resource Shape属性的笔记

naturalmaster的博客 314

Android学习笔记043之Shape详解

Android中提供了shape形状给我们使用,我们可以通过shape画出虚线、圆角、渐变等多种效果,而且,shape是XML代码,比图片更小,在开发中,我们推荐使用shape,能用shape就用shape。

Huawen的博客 599

Android基础学习-shape

Android基础学习笔记查询

oschina_41673164的博客 2826

android里shape与渐变色学习

先说下shape 资源文件里主要包括:边角(corners),渐变色(gradrent),大小(size),边距(padding) ,填充(solid),扫边(stoke) 先说下边角 [html] view plain copy   corners           android:radius=""           and

sinat_30474567的博客 6647

android初级学习之使用shape显示圆形

今天项目中有个需求:TextView和ImageView需要显示为圆形。于是乎,就百度了一下,原来用shape可以轻松解决。下面就简单来说以下如何使用:   其实也是相当于替换background属性的:   首先在drawable下新建一个round.xml文件:<?xml version="1.0" encoding="UTF-8"?> <shape android:shape="oval"

lks1139230294的博客 3714

Android学习之shape属性与用法

经常在项目中使用shape在XML中绘制各种形状,简单整理了一下shape的属性与用法。 shape的图形选项有四种: rectangle(长方形)默认的形状,可以画出直角矩形、圆角矩形、弧形等 oval(椭圆) 用得比较多的是画正圆 line(线条) 可以画实线和虚线 ring(圆环)可以画环形进度条 注意:定义ring圆环的时候需要用到shape的几个属性 android:inner

u013087553的博客 646
上一篇: 安卓四大组件之内容提供者
下一篇: 安卓VM总结
kevin@1024
博客等级 码龄11年 677粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值