Android中的各种XML

简介: Android中的各种XML

Android中的各种XML


在android中,有很多xml配置文件,其中,大家最熟悉的就是layout里面的xml文件。但是,在其他文件夹中,也有很多xml文件,针对某个xml或许搜索一下就能立即看懂并且写出自己想要的xml。可每当需要的时候就去查询,增加了各种重复的工作。本文针对这种情况,专门总结在android各种xml文件。由于layout的xml文件属性繁多,加上layout的xml广为熟知,本文不添加layout里面的xml总结。




1、Drawable



在drawable中使用xml,大部分情况是为了定义图片,主要使用shape和selector标签。shape是定义一个形状,而selector主要是定义不同状态下的图片选择,比如按钮按下后更换背景等等。引用时,只需android:background=“@drawable/文件名”

shape使用规则如下:


<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android"      
      android:shape=["rectangle"|"oval"|"line"|"ring"] > 
     <!-- 圆角 -->     
     <corners          
            android:radius="integer"          
            android:topLeftRadius="integer"          
            android:topRightRadius="integer"          
            android:bottomLeftRadius="integer"          
            android:bottomRightRadius="integer" />  
      <!-- 渐变 -->      
      <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:useLevel=["true"|"false"] />      
      <padding          
            android:left="integer"          
            android:top="integer"          
            android:right="integer"          
            android:bottom="integer" />      
      <size          
            android:width="integer"          
            android:height="integer" />      
      <solid          
            android:color="color" />  
      <!-- 描边 -->   
      <stroke          
            android:width="integer"          
            android:color="color"          
            android:dashWidth="integer"          
            android:dashGap="integer" />  
</shape>  


selector的使用方法如下

<?xml version="1.0" encoding="utf-8" ?>   
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- 默认时的背景图片-->  
    <item android:drawable="@drawable/p1" />    
    <!-- 没有焦点时的背景图片 -->  
    <item android:state_window_focused="false"   
        android:drawable="@drawable/p1" />   
    <!-- 非触摸模式下获得焦点并单击时的背景图片 -->  
    <item android:state_focused="true" 
          android:state_pressed="true"   
          android:drawable="@drawable/p2" /> 
    <!-- 触摸模式下单击时的背景图片-->  
    <item android:state_focused="false" 
          android:state_pressed="true"        
          android:drawable="@drawable/p3" />  
    <!--选中时的图片背景-->  
    <item android:state_selected="true"   
      android:drawable="@drawable/p4" />   
    <!--获得焦点时的图片背景-->  
    <item android:state_focused="true"  
          android:drawable="@drawable/p5" />  
</selector>

可以在item标签里面嵌套shape属性,这样的话item的android:drawable属性应去掉。



2、Style


style文件定义了UI的格式和外观。style文件可以应用在单独的View(在layout文件中)或者应用在整个Activity和Application(在manifest文件)中。



注意:style只是一个简单的资源文件,它的取值为name属性对应的取值。因此,你可以在<resources>标签里组合其他的style资源使用


文件位置:

res/values/filename.xml
文件名可以随意,style元素的name属性作为ID使用  


文件名引用:


在XML文件中: @[package:]style/style_name



语法:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="style_name"  parent="@[package:]style/style_to_inheri">
   <item name="[package:] style_property_name" >style_value</item>
    </style>
</resources>


元素

`<resources>`必须且必须为根元素,没有属性.


<style> 定义一个样式。包含元素。


属性:

name : String类型,必须有该属性. name作为当前style的ID使用。在view和activity以及Application中会使用到这个ID。


parent: Style 资源类型. 引用某个Style,并且继承这个style。


<item> 定义一个Style的属性,必须为<style>元素的子元素。


属性:


name:属性名称,必须有该属性。将要被定义的style属性名称,可能需要添加一个前缀(如android:textColor)。



例子:

style的XML文件(存放在res/values/):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomText" parent="@style/Text">
        <item name="android:textSize">20sp</item>
        <item name="android:textColor">#008</item>
    </style>
</resources>


style XML文件被用于TextView的Style(保存在res/layout/)

<?xml version="1.0" encoding="utf-8"?>
 <EditText
     style="@style/CustomText"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="Hello, World!" />




3、Animation


animation资源可以定义两种类型的动画之一。


属性动画:

通过修改对象的属性值来创建动画。


视图动画

在Framework中,你可以选择两种类型的动画:


  1. 补间动画:通过针对一个图片执行一系列的变形来创建一个动画。
  2. 帧动画:通过顺序显示一系列图片来创建动画。




属性动画


在xml文件定义的动画,通过修改对象的属性值,比如背景颜色或者透明度,并设置一段时间。


文件位置:

res/animator/filename.xml, 文件名将会作为资源ID


编译资源的数据类型:

资源指向ValueAnimator,ObjectAnimator或AnimatorSet


引用:

JAVA:R.animator.filename

XML:@[package:]animator/filename



语法:

<set
  android:ordering=["together" | "sequentially"]>
    <objectAnimator
        android:propertyName="string"
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["repeat"|"reverse"]
        android:valueType=["intType"|"floatType"]/>
    <animator
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["repeat"|"reverse"]
        android:valueType=["intType"|"floatType"]/>
    <set>
        ...
    </set>
</set>


文件中必须有一个根元素:要么<set>,<objectAnimator>或你可以将一些<set>元素放入一个组里。


元素:

<set>


一个包含动画元素(`<objectAnimator>`,`<valueAnimator>`或其他`<set>`元素),代表一个AnimatorSet.



你可以指定嵌套的<set>,以进一步将动画组合在一起。每一个<set>可以定义他自己的ordering属性。


属性:


android:ordering


指定动画集中,该(set)动画的次序。



取值 描述
sequentially 按照动画集的顺序执行动画
together(默认) 同时播放set所有动画


<objectAnimator>

在一定时间后,指定的动画属性的值。代表一个ObjectAnimator对象。



属性:

android:propertyName


String型,必须。将对象属性用于动画,通过其name属性来引用。比如,你可以指定一个View对象的alpha或者backgroundColor.

由于objectAnimator元素没有target属性

,因此你在XML中无法设置用于动画的target。你必须inflate你的动画XML资源通过调用loadAnimator(),且调用setTarget()来设置包含这个属性的target对象



android:valueTo

float,int或color型,必须。动画属性的结束值。颜色通过十六进制数来表示。


android:valueFrom

float,int或color型.动画属性的开始值。如果不指定,动画开始时,值通过调用属性的get方法获取。


android:duration

int,动画执行的毫秒时间。默认300毫秒。


android:startOffset

int。调用start()后动画延迟执行的毫秒数


android:repeatCount

int.动画重复执行的次数。设置-1表示无穷次或者设置正整数。比如1表示开始运行动画后重复1次,因此,一共执行了2次。默认值是0,表示没有重复。


android:repeatMode

int.到动画结束时,应该做出什么行为。其中android:repeatCount必须设置为正整数这个属性才有效。设置reverse来使得动画反向或者设置repeat来设置动画循环从开始的地方执行。


android:valueType

关键字。如果值是颜色,请不要设置这个属性。动画的Framework会自动处理颜色值。


描述
intType 指定动画的值为int
floatType(默认) 指定动画的值为float


示例:

文件存放在res/animator/propertyanimator.xml

 <set android:ordering="sequentially">
    <set>
        <objectAnimator
            android:propertyName="x"
            android:duration="500"
            android:valueTo="400"
            android:valueType="intType"/>
        <objectAnimator
            android:propertyName="y"
            android:duration="500"
            android:valueTo="300"
            android:valueType="intType"/>
    </set>
    <objectAnimator
        android:propertyName="alpha"
        android:duration="500"
        android:valueTo="1f"/>
</set>


为了运行这个动画,你必须在代码中的AnimatoSet对象里inflate这个XML资源文件,在开始动画前对所有的动画设置target对象。可以方便地通过调用setTarget()为所有的AnimatorSet的子标签设置同一个target对象。示例如下:

AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
    R.anim.property_animator);
set.setTarget(myObject);
set.start();
相关文章
|
7月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
183 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
9月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
310 15
|
XML API PHP
Android使用XML-RPC实现blog客户端
Android使用XML-RPC实现blog客户端
166 2
|
存储 Java 数据库
基于全志H713 Android 11:给TvSettings添加default.xml默认值
本文介绍了在全志H713 Android 11平台上为TvSettings应用添加HDMI CEC功能的默认设置值的方法,通过修改SettingsProvider的源码和配置文件来实现默认值的设置,并提供了详细的步骤和测试结果。
564 0
基于全志H713 Android 11:给TvSettings添加default.xml默认值
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
389 12
|
Shell Android开发
安卓scheme_url调端:在AndroidManifest.xml 中如何配置 Intent-filter?
为了使Android应用响应vivo和oppo浏览器的Deep Link或自定义scheme调用,需在`AndroidManifest.xml`中配置`intent-filter`。定义启动的Activity及其支持的scheme和host,并确保Activity可由外部应用启动。示例展示了如何配置HTTP/HTTPS及自定义scheme,以及如何通过浏览器和adb命令进行测试,确保配置正确无误。
|
Android开发 开发者
Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。
【6月更文挑战第26天】Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。要更改主题,首先在该文件中创建新主题,如`MyAppTheme`,覆盖所需属性。然后,在`AndroidManifest.xml`中应用主题至应用或特定Activity。运行时切换主题可通过重新设置并重启Activity实现,或使用`setTheme`和`recreate()`方法。这允许开发者定制界面并与品牌指南匹配,或提供多主题选项。
288 6
|
XML 存储 JavaScript
50. 【Android教程】xml 数据解析
50. 【Android教程】xml 数据解析
213 1
|
Android开发
android string.xml文件中的整型和string型代替
android string.xml文件中的整型和string型代替
146 0
|
XML Android开发 数据格式
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class
204 0

热门文章

最新文章