`
ET焖猪仔
  • 浏览: 235851 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

Android下基于XML的Graphics

阅读更多
以前作图,一般有两种方式,首先是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" 不能太宽
分享到:
评论

相关推荐

    Android下基于XML的Graphics_shape使用方法.docx

    `Graphics_shape`是Android SDK提供的一种强大的工具,允许通过XML文件定义各种形状,如矩形、椭圆、线性渐变、径向渐变等,而无需依赖外部图像资源。这种方式既方便又节省内存,特别适合动态改变或自定义UI元素。 ...

    Pro Android Graphics - Wallace Jackson.pdf

    《Pro Android Graphics》是一本专注于Android图形处理方面的技术书籍。本书从基础到高级层面,详细介绍了Android平台上图形处理的概念、技术和优化方法。本书的内容结构丰富,不仅涵盖了数字成像、视频、动画等传统...

    Android-ChinaMap利用xml解析SVG文件绘制中国省份地图

    SVG是一种基于XML的矢量图格式,它允许开发者通过文本编辑器创建和编辑图形,同时支持动画和交互性。在Android中,我们可以借助AndroidSVG库来解析和渲染SVG内容。 1. **集成AndroidSVG库** 首先,我们需要将...

    Android-使用Glide在Android中加载SVG

    SVG是一种基于XML的图形语言,它可以描绘出各种形状、线条和路径,并且支持渐变、透明度和动画。由于SVG图像的特性,它们在任何尺寸下都能保持清晰,这对于适应不同屏幕尺寸和分辨率的Android设备非常有利。 接下来...

    XMl.rar_xml

    4. **电子文档**:如SVG(Scalable Vector Graphics)和MathML(Mathematical Markup Language)都是基于XML的,用于创建矢量图形和数学公式。 5. **元数据**:在数字图书馆和搜索引擎中,XML常用来描述和组织资源...

    SVG转Android VectorDrawable工具

    首先,SVG是一种基于XML的矢量图像格式,它使用数学公式来描述图像,因此可以无限放大而不会失真。这使得SVG在网页设计和移动应用开发中非常受欢迎,尤其是在需要适应多种屏幕尺寸的场景下。 Android ...

    android常用的71个矢量图标

    常见的矢量图形格式有SVG(Scalable Vector Graphics)和XML,Android Studio支持这两种格式,并且可以方便地将它们整合到项目中。 1. SVG格式:SVG是一种开放标准的矢量图形语言,允许开发者使用XML来描述二维图形...

    基于Android的各种基础操作

    以下是对标题"基于Android的各种基础操作"及描述中提及的知识点的详细阐述: 1. **Activity测试**:Activity是Android应用程序的基本组件,它负责用户界面的显示和交互。进行Activity测试主要包括验证Activity的...

    svg2vector:SVG图像到Android矢量可绘制XML资源文件的在线批处理转换器

    首先,SVG图像是一种基于XML的矢量图像格式,它通过数学公式描述图像,因此无论放大多少倍都不会失真。这种特性使得SVG特别适合用于需要跨设备、跨分辨率显示的应用中。SVG文件通常包含形状、路径、文本、渐变、滤镜...

    Android数百种动画效果源码

    - 在XML中定义动画序列,通过设置`android:oneshot`属性控制是否重复播放。 4. **Transition动画** - 自Android Lollipop(API Level 21)开始,Transition框架允许在Activity或Fragment间平滑过渡,例如布局变化...

    Powered by Android

    "Poweered by Android Grey.svg" 和 "Powered by Android White.svg" 是SVG(Scalable Vector Graphics)文件,这是一种基于XML的矢量图像格式。SVG图像可以在不损失质量的情况下放大或缩小,适合用于网站、图标以及...

    Android弹幕实现:基于B站弹幕开源系统(1).docx编程资料

    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; ...

    Android中使用SVG实现炫酷动画效果

    SVG是一种基于XML的图形语言,它定义了形状、路径、文本、渐变、透明度等元素,可以创建复杂的图形。SVG文件由一系列指令构成,这些指令告诉浏览器如何绘制图形。由于其矢量特性,SVG图像可以在不牺牲质量的情况下...

    android 各种类型的头像实现

    SVG是一种基于XML的矢量图像格式,它允许无限缩放而不会损失画质,非常适合在移动设备上使用。 首先,我们要理解`CustomShapeImageView`这个类名的含义。在Android中,`ImageView`是用于显示图片的标准控件,但默认...

    Android下八款开源游戏引擎.

    Angle 是一个专为 Android 设计的 2D 游戏引擎,基于 OpenGL ES 技术。它的特点是使用 Java 语言编写,允许开发者根据需求定制引擎的内部实现。尽管 Angle 的文档不足,仅有一些示例教程,但其敏捷性和快速开发能力...

    Android-Android上的Triangulation动画

    SVG是一种基于XML的矢量图像格式,它可以被用于创建复杂的图形,而且无论放大多少倍都不会失真。SVG支持路径、形状、渐变、滤镜等元素,并且可以通过CSS或JavaScript进行样式控制和交互。在JavaScript中,三角剖分...

    老罗android开发视频教程全集百度网盘下载

    Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序—— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。 Android以Java为编程语言,使...

    安卓(Android)平台用于SVG文件处理的开源框架

    在Android平台上,SVG(Scalable Vector Graphics)文件的处理是一项重要的任务,因为SVG是一种基于XML的矢量图像格式,可以提供高质量的图形,并且在放大时不会失真。为了应对这一需求,开发者社区推出了一些开源...

    xml教程

    5. 图像和图形描述:SVG(Scalable Vector Graphics)是一种基于XML的图像格式,支持矢量图的描述。 学习XML,你需要掌握以下几个核心概念: - XML元素:XML文档的基本构建块,由标签(如`&lt;element&gt;`和`&lt;/element&gt;...

Global site tag (gtag.js) - Google Analytics