前言

很多新手朋友在进行Android的XML文件编程时经常会看到 xmlns:android 这句话却不知其意,本章将带领大家浅显了解下!!

目录

  • 如何定义自己的命名空间

    • xmlns 的由来
    • xmlns:android
  • 常见的 xmlns:app,xmlns:tools

  • 如何自定义样式

xmlns 的由来

在编写 Xml 文档的时候,难免会在俩个文档出现同属性不同内容而导致命名冲突,而 xmlns 解析器是无法处理这种类型的冲突的,为了避免这类问题的发生,于是有了 Xml + namespace 即命名空间,缩写 xmlns

xmlns:android

前面讲到 xmlns 的意义,现在讲一下xmlns的格式:namespace-prefix(前缀)= http://schemas.android.com/apk/res/应用程序包路径,前缀只是一个标志符,作为命名空间的别名,使用的时候按照格式namespace-prefix(前缀):属性,所以现在在每次编写 Xml 文件时都有

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

这一句话,每次使用都要以 android : 属性

常见的xmlns:app,xml:tools

在Android开发允许自定义控件属性,在 xml 中使用自己自定义的attr()时其中有一步就是要自定义一个命名空间然后再给自定义的属性赋值,于是Android提供了一个xmlns:app命名空间,在早期编程自定义需要加这样一句 xmlns:app=”http://schemas.android.com/apk/App 的 Package 名” 现在统一了使用这一句

xmlns:app="http://schemas.android.com/apk/res-auto"

使用IDE编写布局代码的时候,在IDE即可查看布局的预览效果,但是有些效果是需要在运行之后才能查看,比如 TextView 在 Xml 中没有设置任何字符,而在 activity 设置了 text。因此为了在IDE中也能预览效果,你必须在 TextView 空间中设置 android:text 属性,一般我们在做这样的事情都会跟自己说没关系,等下回头删掉就行,但是你总有忘记的时候,而在最终开发的产品中留下这样的代码是多么的“影响市容”。

然而以上的这些情况都可以通过 tools 命名空间及其属性来解决问题

xmlns:tools="http://schemas.android.com/tools"

tools 可以告诉 Android Studio,哪些属性在运行的时候是被忽略的,只在设计布局的时候有效

tools可以解决!

tools可以解决!

tools可以解决!

重要的事情说三遍,再结合一次代码实例比烧高香祈祷还有效

<TextViewandroid:id="@+id/text_main"android:layout_width="match_parent"android:layout_height="wrap_content"android:textAppearance="@style/TextAppearance.Title"android:layout_margin="@dimen/main_margin"tools:text="I am a title" />

tools 可以覆盖 android 的所有标准属性,将 android: 换成 tools: 即可。同时在运行的时候就连 tools: 本身都是被忽略的,不会被带进 apk 中

自定义样式

在Android的应用的资源文件中有一个style.xml文件,这个文件是干什么用的呢?我们有时候经常需要对某个类型的组件指定大致相似的格式,比如字体、颜色、背景色等,如果我们每次都为某个View组件去重复指定这些属性,这无疑会产生大量的工作,而且还不利于后期的代码修改和维护。而Style就是一个样式的格式,这个格式可以被多个View组件所使用,也可以说是一个样式的集合类,被需要这一类样式集合的View组件所使用。

例如我们可以给一个 Button 定义这样一个样式

<style name="buttonStyle">  <item name="android:background">@drawable/login_button</item>  <item name="android:textColor">@color/buttonTextColor</item>  </style> 

然后在布局文件中引入样式

<Button   android:layout_width="200dip"  android:layout_height="200dip"  android:text="@string/login_button"  style="@style/buttonStyle"  />  

代码中 login_buttwon.xml 放在drawable文件中,buttonTextColor 在 color.xml中定义,否则不生效。

感谢阅读本章的内容,鉴于作者本身能力有限,可能有些地方描述有误,欢迎各位高手大神指出,在此谢过!!!

更多相关文章

  1. android:layout_alignleft layout_toleftof区别,详解RelativeLayo
  2. Android之主题与样式
  3. Android基础入门教程——8.4.4 Android动画合集之属性动画-又见
  4. Android系统build/core下.mk文件分析
  5. Android属性动画使用浅析
  6. android使用webview上传文件(支持相册和拍照)
  7. Android ImageView使用网络资源文件
  8. Android的文件存储(写入和读取)
  9. android 多款按钮样式

随机推荐

  1. Android(安卓)使用GSM定位
  2. 如何通过网页打开Android(安卓)APP
  3. Android和J2ME按钮接口之简单对比
  4. Android7.0 系统启动流程---system_serve
  5. 如何使用android sdk开发应用
  6. 如何使Android应用程序获取系统权限来修
  7. android Canvas用法
  8. android传输视频到PC
  9. Android中的网络时间同步
  10. Android系统服务 WMS与AMS简单理解