热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android学习-AndroidXML的使用

一、布局文件。在layout目录下,使用比较广泛;我们可以为应用定义两套或多套布局,例如:可以新建目录layout_land(代表手机横屏布局),layout_port(代表手机竖屏布局),

一、布局文件。在layout目录下,使用比较广泛;

我们可以为应用定义两套或多套布局,例如:可以新建目录layout_land(代表手机横屏布局),layout_port(代表手机竖屏布局),系统会根据不同情况自动找到最合适的布局文件,但是在同一界面的两套不同布局文件的文件名应该是相同的,只是放在了两个不同的目录下。

二、图片文件。在drawable目录下,从2.1版本以后分为三个目录:

1、drawable-hdpi里面存放高分辨率的图片,如WVGA(480×800)、FWVGA(480×854)。

2、drawable-mdpi里面存放中等分辨率的图片,如HVGA(320×480)。

3、drawable-ldpi里面存放低分辨率的图片,如QVGA(240×320)。

系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。

在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。

我们可以将已经做好的图片放到该目录下,或者通过自定义XML文件来实现想要的图片,例如我们可以定义shapge_1.xml放到drawable目录下,内容如下:



android:startColor="#0055ff88"
android:centerColor="#0055ff00"
android:centerY="0.75"
android:endColor="#00320077"
android:angle="270"
/>



android:
android:color="#ee31ff5e"
android:dash
android:dashGap="2dp" />

android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />





当我们想让一个控件根据不同状态显示不同图片,可以直接在程序中控制,也可以在drawable目录建立XML文件达到相同的效果,例如:我们可以在drawable目录下新建文件button_back.xml






<-- 这里还可以加N多效果和动作 只要你用的到 -->



以上XML文件可以实现一个控件(假设为button),获取焦点,按下按钮,正常状态下显示不同图片的效果,只需要在定义控件是引用该文件名即可,例如:

     android:id="@+id/Button"
android:layout_
android:layout_
android:background="@drawable/button_add_x">



但是当我们的条件不是系统已有的事件类型,例如根据ImageView根据一个变量var的值的不同显示不同的图片,应该怎么办呢?可以在程序中写如下代码:

if (条件1)
{
image.setBackground(R.id.xxx1);
}
else if (条件2)
{
image.setBackground(R.id.xxx2);
}

或者可以用另一个简便的方法实现相同的功能,在res/drawable下建立一个xml文件,内容如下 :









然后在layout中把imageview的src设置成已创建好的xml文件,程序中变换图片时,只需要使用imageview.getDrawable().setLevel(50);

Android会根据level的值自动选择对应的图片。手机显示剩余电量就是用这个方法来显示不同图片的。

三、菜单文件。在menu目录下,写代码时只需在onCreateOptionsMenu方法中用MenuInflater装载进去就OK了。格式如下。


android:title="Enabled"
android:icon="@drawable/stat_happy" />

android:title="Disabled"
android:enabled="false"
android:icon="@drawable/stat_sad" />

android:title="Enabled"
android:icon="@drawable/stat_happy" />

android:title="Disabled"
android:enabled="false"
android:icon="@drawable/stat_sad" />


四、resource文件。在values目录下,之所以称之为resource文件,是因为values目录下xml文件都是以resource作为根节点。

1、strings.xml定义字符串的文件,格式如下:


Hello World!
我的应用程序


2、colors.xml定义颜色的文件,格式如下:



#ff000000
#e0000000
#00000000

#f00
#0000ff
#f0f0
#ffffff00


3、arrays.xml定义数组的文件,格式如下:



Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune
Pluto



100
500
800



4、styles.xml定义样式的文件,分为两种用途:

Style:以一个单位的方式用在布局XML单个元素(控件)当中。 例如:我们可以为TextView定义一种样式风格,包含文本的字号大小和颜色,然后将其用在TextView特定的实例。

Theme:以一个单位的方式用在应用中所有的Activity当中或者应用中的某个Activity当中。 比如,我们可以定义一个Theme,它为window frame和panel的前景和背景定义了一组颜色,并为菜单定义可文字的大小和颜色属性,可以将这个Theme应用在你程序当中所有的Activity里。








个人认为,其实不管是Theme还是Style,其实只是应用的范围不同而已,区分的话应该是根据android:name="xxxx"的xxxx来区分吧,很明显是不同的。

5、dimen.xml定义单位的文件,android中度量单位有以下几种:

px(象素):屏幕实际的象素,常说的分辨率1024*768pixels,就是横向1024px,纵向768px,不同设备显示效果相同。

in(英寸):屏幕的物理尺寸,每英寸等于2.54厘米。

mm(毫米):屏幕的物理尺寸。

pt(点):屏幕的物理尺寸。1/72英寸。

dp/dip:与密度无关的象素,一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。但dp和px的比例会随着屏幕密度的变化而改变,不同设备有不同的显示效果。

sp:与刻度无关的象素,主要用于字体显示best for textsize,作为和文字相关大小单位。


1px
2dp
16sp


6、attrs.xml定义属性的文件,主要用在自定义的组件中,具体使用方法会在后续的如何使用自定义组件中详细介绍,其格式如下:








五、动画文件在anim目录下,动画资源分为两种:

1、实现图片的translate、scale、rotate、alpha四种变化,还可以设置动画的播放特性,称为Tween动画。


android:fromXDelta="0" android:toXDelta="200" android:fromYDelta="0"
android:toYDelta="180" android:duration="2000" />
android:fromXScale="1.0" android:toXScale="2.0" android:fromYScale="1.0"
android:toYScale="2.0" android:pivotX="150%" android:pivotY="150%"
android:duration="2000" />
android:duration="@android:integer/config_mediumAnimTime" />

可以使用其子类和属性定义动画的运行方式,先快后慢,先慢后快等


2、帧动画,逐帧播放设置的资源,称为Frame动画。

android:Oneshot=”true”>





六、raw目录下的文件,是直接复制到设备中的任意文件。它们无需编译,添加到你的应用程序编译产生的压缩文件中。一般为应用要用到的音频或视频文件等等

要使用这些资源,可以调用Resources.openRawResource(),参数是资源的ID,即R.raw.somefilename

七、xml目录下的文件,是程序中需要使用的普通xml文件。在运行时可以通过调用Resources.getXML()读取。

八、assets目录下的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。

1、先在Activity里面调用getAssets()来获取AssetManager引用。

2、再用AssetManager的open(StringfileName, int accessMode)方法则指定读取的文件以及访问模式就能得到输入流InputStream。

3、然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close()。

4、调用AssetManager.close()关闭AssetManager。

总结:其实android中定义如此多的XML配置文件,在我看来就是为了达到显示层和数据层的分离,提高了可维护性,也是我们的程序代码变得简洁。



推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • android 触屏处理流程,android触摸事件处理流程 ? FOOKWOOD「建议收藏」
    android触屏处理流程,android触摸事件处理流程?FOOKWOOD「建议收藏」最近在工作中,经常需要处理触摸事件,但是有时候会出现一些奇怪的bug,比如有时候会检测不到A ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 解决IDEA配置xml文件头报错的方法
    本文介绍了解决IDEA配置xml文件头报错的方法,包括了具体的解决方案和步骤。通过本文的指导,读者可以轻松解决这个问题并正常使用IDEA进行开发工作。 ... [详细]
author-avatar
莎仕比亚的围脖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有