以前作图,一般有两种方式,首先是UI把图形设计好,我们直接贴,对于那些简单的图形,如矩形、扇形这样的图形,一般的系统的API会提供这样的接口,但是在Android下,有第三种画图方式,介于二者之间,结合二者的长处,如下的代码:
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#0055ff88"
android:centerColor="#0055ff00"
android:centerY="0.75"
android:endColor="#00320077"
android:angle="270"
/>
</shape>
</clip>
</item>
这是一个Progress的style里面的代码,描述的是进度条的为达到的图形,原本以为这是一个图片,后来仔细的跟踪代码,发现居然是xml,像这种shape corners gradient等等这还是第一次碰到。shape 表示是一个图形,corners表示是有半径为5像素的圆角,然后,gradient表示一个渐变。这样作图简单明了,并且可以做出要求很好的图形,并且节省资源
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF"
android:angle="270"/>
<padding android:left="50dp" android:top="20dp"
android:right="7dp" android:bottom="7dp" />
<corners android:radius="8dp" />
</shape>
gradient 产生颜色渐变 android:angle 从哪个角度开始变 貌似只有90的整数倍可以
android:shape="rectangle" 默认的也是长方形
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<solid android:color="#ff4100ff"/>
<stroke android:width="2dp" android:color="#ee31ff5e"
android:dashWidth="3dp" android:dashGap="2dp" />
<padding android:left="7dp" android:top="7dp"
android:right="7dp" android:bottom="7dp" />
<corners android:radius="6dp" />
</shape>
#ff4100ff蓝色#ff4100ff绿色
<solid android:color="#ff4100ff"/>实心的 填充里面
<stroke 描边 采用那样的方式将外形轮廓线画出来
android:dashWidth="3dp" android:dashGap="2dp" 默认值为0
android:width="2dp" android:color="#FF00ff00"笔的粗细,
android:dashWidth="5dp" android:dashGap="5dp" 实现- - -这样的效果,dashWidth指的是一条小横线的宽度
dashGap 指的是 小横线与小横线的间距。 width="2dp" 不能太宽
分享到:
相关推荐
`Graphics_shape`是Android SDK提供的一种强大的工具,允许通过XML文件定义各种形状,如矩形、椭圆、线性渐变、径向渐变等,而无需依赖外部图像资源。这种方式既方便又节省内存,特别适合动态改变或自定义UI元素。 ...
《Pro Android Graphics》是一本专注于Android图形处理方面的技术书籍。本书从基础到高级层面,详细介绍了Android平台上图形处理的概念、技术和优化方法。本书的内容结构丰富,不仅涵盖了数字成像、视频、动画等传统...
SVG是一种基于XML的矢量图格式,它允许开发者通过文本编辑器创建和编辑图形,同时支持动画和交互性。在Android中,我们可以借助AndroidSVG库来解析和渲染SVG内容。 1. **集成AndroidSVG库** 首先,我们需要将...
SVG是一种基于XML的图形语言,它可以描绘出各种形状、线条和路径,并且支持渐变、透明度和动画。由于SVG图像的特性,它们在任何尺寸下都能保持清晰,这对于适应不同屏幕尺寸和分辨率的Android设备非常有利。 接下来...
4. **电子文档**:如SVG(Scalable Vector Graphics)和MathML(Mathematical Markup Language)都是基于XML的,用于创建矢量图形和数学公式。 5. **元数据**:在数字图书馆和搜索引擎中,XML常用来描述和组织资源...
首先,SVG是一种基于XML的矢量图像格式,它使用数学公式来描述图像,因此可以无限放大而不会失真。这使得SVG在网页设计和移动应用开发中非常受欢迎,尤其是在需要适应多种屏幕尺寸的场景下。 Android ...
常见的矢量图形格式有SVG(Scalable Vector Graphics)和XML,Android Studio支持这两种格式,并且可以方便地将它们整合到项目中。 1. SVG格式:SVG是一种开放标准的矢量图形语言,允许开发者使用XML来描述二维图形...
以下是对标题"基于Android的各种基础操作"及描述中提及的知识点的详细阐述: 1. **Activity测试**:Activity是Android应用程序的基本组件,它负责用户界面的显示和交互。进行Activity测试主要包括验证Activity的...
首先,SVG图像是一种基于XML的矢量图像格式,它通过数学公式描述图像,因此无论放大多少倍都不会失真。这种特性使得SVG特别适合用于需要跨设备、跨分辨率显示的应用中。SVG文件通常包含形状、路径、文本、渐变、滤镜...
- 在XML中定义动画序列,通过设置`android:oneshot`属性控制是否重复播放。 4. **Transition动画** - 自Android Lollipop(API Level 21)开始,Transition框架允许在Activity或Fragment间平滑过渡,例如布局变化...
"Poweered by Android Grey.svg" 和 "Powered by Android White.svg" 是SVG(Scalable Vector Graphics)文件,这是一种基于XML的矢量图像格式。SVG图像可以在不损失质量的情况下放大或缩小,适合用于网站、图标以及...
import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; import java.util.HashMap; import master.flame.danmaku.danmaku.model.BaseDanmaku; ...
SVG是一种基于XML的图形语言,它定义了形状、路径、文本、渐变、透明度等元素,可以创建复杂的图形。SVG文件由一系列指令构成,这些指令告诉浏览器如何绘制图形。由于其矢量特性,SVG图像可以在不牺牲质量的情况下...
SVG是一种基于XML的矢量图像格式,它允许无限缩放而不会损失画质,非常适合在移动设备上使用。 首先,我们要理解`CustomShapeImageView`这个类名的含义。在Android中,`ImageView`是用于显示图片的标准控件,但默认...
Angle 是一个专为 Android 设计的 2D 游戏引擎,基于 OpenGL ES 技术。它的特点是使用 Java 语言编写,允许开发者根据需求定制引擎的内部实现。尽管 Angle 的文档不足,仅有一些示例教程,但其敏捷性和快速开发能力...
SVG是一种基于XML的矢量图像格式,它可以被用于创建复杂的图形,而且无论放大多少倍都不会失真。SVG支持路径、形状、渐变、滤镜等元素,并且可以通过CSS或JavaScript进行样式控制和交互。在JavaScript中,三角剖分...
Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序—— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。 Android以Java为编程语言,使...
在Android平台上,SVG(Scalable Vector Graphics)文件的处理是一项重要的任务,因为SVG是一种基于XML的矢量图像格式,可以提供高质量的图形,并且在放大时不会失真。为了应对这一需求,开发者社区推出了一些开源...
5. 图像和图形描述:SVG(Scalable Vector Graphics)是一种基于XML的图像格式,支持矢量图的描述。 学习XML,你需要掌握以下几个核心概念: - XML元素:XML文档的基本构建块,由标签(如`<element>`和`</element>...