(android UI )shape详解,改变控件的默认样式(GradientDrawable)

本文探讨了Android开发中通过XML Shape实现控件样式的多种属性,包括渐变、填充、描边、圆角和内边距,并详细解释了各属性的作用和用途。同时,对比了直接使用图片资源与XML Shape方式的优缺点,强调了后者在减小APK文件大小方面的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 在Android开发过程中,经常需要改变控件的默认样式,那么通常会使用多个图片来解决。不过这种方式可能需要多个图片,比如一个按钮,需要点击时的式样图片,默认的式样图片。这样就容易使apk变大。

 

  那么除了使用drawable这样的图片外,还有其他方法吗?

 

  本次就谈一下自定义图形shapeAndroid上支持以下几种属性shapegradientstrokecornerspaddingsolid等。

 

先来看两个例子:

 

 

viewplainprint?

  1. <shape  

  2.     xmlns:android="http://schemas.android.com/apk/res/android"  

  3.     android:shape="rectangle">  

  4.     <gradient android:startColor="#FFFF0000"  

  5.         android:endColor="#80FF00FF"  

  6.         android:angle="270" />  

  7.     <padding android:left="50dp"  

  8.         android:top="20dp" android:right="7dp"  

  9.         android:bottom="7dp" />  

  10.     <corners android:radius="8dp" />  

  11. </shape>  

 

 

 

效果:

 

 

viewplainprint?

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <shape android:shape="rectangle"  

  3.     xmlns:android="http://schemas.android.com/apk/res/android">  

  4.     <solid android:color="#b4000000" />  

  5.     <stroke android:width="2.0dip"  

  6.         android:color="#b4ffffff"  

  7.         android:dashWidth="3.0dip"  

  8.         android:dashGap="0.0dip" />  

  9.     <padding android:left="7.0dip"  

  10.         android:top="7.0dip" android:right="7.0dip"  

  11.         android:bottom="7.0dip" />  

  12.     <corners android:radius="8.0dip" />  

  13. </shape>  

 

 

 

效果:

 

 

总结一下Shape的所有子属性,如图:

 

 

简单说明一下:

 

gradient   --对应颜色渐变。startcolorendcolor就不多说了。 android:angle是指从哪个角度开始变。

solid     --  填充。

stroke  --  描边。

corners --  圆角。

padding  -- 定义内容离边界的距离。与android:padding_leftandroid:padding_right这些是一个道理。

 

 


 

 

上面这些不是本讲重点。本讲的重点是这些xml中属性,与Java类的对应关系,以及如何使用Java类写出上面一样的效果!

 

首先来看对应关系:

 

父节点shape  --   ShapeDrawable

 [子节点]gradient   --  

 [子节点] padding  --   

 [子节点] corners  --   setCornerRadius setCornerRadii 

 [子节点] solid      --    

 [子节点] stroke   --   setStroke 

 [子节点] size --   setSize

 

发现只有几个是可以对应的~~看来通过Java代码来实现上述是行不通的..


资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值