• Android 学习之旅(2) xml基础知识


     

    <!-最近看博客有近百人来看,我本来想把这文章放在一边不管,但是我曾经有过看过别人的帖子,没有找到自己想要找的东西的失望,我决定定期更新这篇文章。的确我也只是个初学者,如果那里有错误,还要希望大家多多批评,我也能够改正学习。->

     
    先来一段代码:
     
     
    <RelativeLayout 
    
        xmlns:android="http://schemas.android.com/apk/res/android"
    
        xmlns:tools="http://schemas.android.com/tools"
    
        android:layout_width="match_parent"
    
        android:layout_height="match_parent" >
    
        <TextView
    
            android:layout_width="wrap_content"
    
            android:layout_height="wrap_content"
    
            android:layout_centerHorizontal="true"
    
            android:layout_centerVertical="true"
    
            android:padding="@dimen/padding_medium"
    
            android:text="@string/hello_world"
    
             />
    
    </RelativeLayout>
    
    这个选自helloworld项目下res/layout中的main.xml文件,下面就解释下xml的一些东西,本人能力有限。再加上我自己的理解。
     
    这段代码的跟标签为RelativeLayout(上下对齐的两个),在跟标签下声明了些东西,
    前两个带http的不用管,可能是必须的(我在旧版本里只见过第一个),
    第三行android:layout_width="match_parent"   针对这行我多说几句,
    咳咳……通过它的英文的意思,我们可以大致的看出,这句话说的是布局的宽度,
    宽度的值为match_parent(可以先不懂,意思为充满父控件),下一行说的是它的高度。
     
    在RelativeLayout下还嵌套了个TextView这个标签,其中里面的东西是这个TextView的一些属性。
     
    建议买本关于android开发的书,这样学的会比较的快。
     
    =============================================================================================
    这里我想说下,eclipse的“

    代码助手

    ”这个插件很好用的,它的使用方式是“Alt 和 / ”键的组合,
    如你只写到android:layou_width=    按下提示,他一般会提示出  fill_parent  或者   wrap_content  
     
    比如
    QQ截图20120804173421
     
     ==================================================================================================
    不懂的话先看看百度给xml的一些解释,然后再重新看一遍上边的话,也许就明白了,哇咔咔~

    简明语法

    SGML常用来定义针对HTML的文档类型定义(DTD),同时它也常用于编写XML的DTD。SGML的问题就在于,它允许出现一些奇怪的语法,这让创建HTML的解析器成为一个大难题:

      1 某些起始标签不允许出现结束标签,例如HTML中<img>标签。包含了结束标签就会出现错误。

      2 某些起始标签可以选择性出现结束标签或者隐含了结束标签。

      3 某些起始标签要求必须出现结束标签,例如HTML中<script>标签。

      4 标签可以以任何顺序嵌套。即使结束标签不按照起始标签的逆序出现也是允许的,例如,This is a sample string是正确的。

      5 某些特性要求必须包含值,例如<img src="picture.jpg">中的src特性。

      6 某些特性不要求一定有值,例如中的nowrap特性。

      7 定义特性的两边有没有加上双引号都是可以的,所以<img src="picture.jpg">和<img src=picture.jpg>都是允许的。

      这些问题使建立一个SGML语言的解析器变成了一项艰巨的任务。判断何时应用以上规则的困难导致了SGML语言的定义一直停滞不前。以这些问题作为出发点,XML逐渐步入我们的视野。

      XML去掉了之前令许多开发人员头疼的SGML的随意语法。在XML中,采用了如下的语法:

      1 任何的起始标签都必须有一个结束标签。

      2 可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如<tag/ >。XML解析器会将其翻译成<tag></tag>。

      3 标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如this is a samplestring。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。

      4 所有的特性都必须有值。

      5 所有的特性都必须在值的周围加上双引号。

      这些规则使得开发一个XML解析器要简便得多,而且也除去了解析SGML中花在判断何时何地应用那些奇怪语法规则上的工作。仅仅在XML出现后的前六年就衍生出多种不同的语言,包括MathMLSVGRDFRSSSOAPXSLTXSL-FO,而同时也将HTML改进为XHTML

     
     
     

     
    2012/8/7
     
    xml在android开发当中主要用到在布局文件当中,下面我就对布局写下我的笔记。
     
    布局文件放在res/layout目录下,创建布局文件的要点:
    1. 1.布局文件的扩展名必须是.xml
    2. 2.布局文件的根节点通常是一个布局方式(垂直线性布局等),在里面添加控件节点(TextView等),布局可以嵌套
    3. 3.布局文件的根节点必须包含一个命名空间,值为http;//schemas.android.com/apk/res/android
    4. 4.如果想要在java中使用或者修改控件,必须给控件一个id,格式为android:id="+id/IDname"    如果这个id在android中已经定义过了,可以用这样的格式   android:id="id/android"

     

    如main.xml代码

      1: <?xml version="1.0" encoding="utf-8"?>
    
      2: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
      3:     android:layout_width="fill_parent"
    
      4:     android:layout_height="fill_parent"
    
      5:     android:orientation="vertical" >
    
      6: 
    
      7:     <TextView
    
      8:         android:id="@+id/tv"
    
      9:         android:layout_width="fill_parent"
    
     10:         android:layout_height="wrap_content"
    
     11:         android:text="@string/hello" />
    
     12: 
    
     13: </LinearLayout>

    如果要使用这个布局文件(在java中),就要在OnCreat 方法中使用setContetView方法来指定布局文件的id(在R.layout.idName).

    setContentView(R.layout.main);

     

    想要得到这个控件,可以使用如下方式:

    TextView tv = (TextView) findViewById (R.id.tv);

    需要导入的包import android.widget.EditText;  (快捷键Ctrl + Shift + O)

     

    布局常用的属性:

    1. 1.padding和layout_margin
    2. 2.grivityh和layout_grivity

    第一个属性的值主要以10dip等值来实现,而第二个属性的值主要是方向(如center 、 right 等)。这些属性实现只需在控件的标签下添加即可,如在上面的8行位置添加  

    android:layout_margin="20px"

    android:padding="30px"  (英文的“:”和“P”连在一起会出现表情,故用中文的“:”代替)

    android:gravity="center"

     

    效果请自行尝试。

     


    2012.8.10  

    今天回到学校了,因为马上就要开学了,回来了也许能更加没时间来更新博客了。但是有时间还是会继续的

     

    下面介绍几种布局的方式

    1.线性布局(LinearLayout)

    2.相对布局(RelativeLayout)

    3.表格布局(TableLayout)

    4.框架布局(FrameLayout)

    5.绝对布局(AbsoluteLayout)

     

     

     
     
     
     
     
    转载文章请注明出处: http://www.cnblogs.com/menglei/
  • 相关阅读:
    kubeadm安装kubernetes集群
    推荐几个大厂的前端代码规范,你也能写出诗一样的代码!
    恕我直言,你可能连 GitHub 搜索都不会用
    全球最火的WEB开发学习路线!没有之一!3 天就在GitHub收获了接近 1w 点赞
    VS2013扩展和更新JS智能提示
    linux下升级git版本的操作记录(摘录)
    python 多版本 安装模块 ModuleNotFoundError: No module named 'xxx'
    记录一次app报病毒的问题
    python 根据大图片生成各种规格图片 生成ios需要的各个规格的icon
    React Native iOS 项目初始化
  • 原文地址:https://www.cnblogs.com/menglei/p/2623257.html
Copyright © 2020-2023  润新知