XML

XML— Extensible Markup Language可扩展标记语言

布局

  • 每个布局文件都必须只包含一个根元素,并且该元素必须是视图对象或 ViewGroup对象,然后再以子元素的形式添加其他布局对象或小部件,从而逐步构建定义布局的视图层次结构

加载 XML 资源

  • 编译应用时,每个 XML 布局文件都会编译到一个 View 资源中

属性

  • 在android中决定行为或者视图效果的特性
  • 属性名称必须带有冒号并且写在android之后

ID

ID 将作为整型数引用,但在XML中一般会给其赋值为字符串类型

id的语法为:android:id=”@+id/my_button”

1. @ 符号指示 XML 解析程序应该解析并展开 ID 字符串的其余部分,并将其标识为 ID 资源。加号 (+) 表示这是一个新的资源名称,必须创建该名称并将其添加到我们的资源(在 R.java 文件中)内
2.引用 Android 资源 ID 时,不需要加号,但必须添加 android 软件包命名空间 eg:android:id="@android:id/empty" 表明我们是从Android的资源文件R文件中引用的
3.ID属性的命名应具有全局唯一性

布局参数

名为 layout_something 的 XML 布局属性可为视图定义与其所在的 ViewGroup 相适的布局参数

  • 所有视图组都包括宽度和高度(layout_width 和 layout_height),并且每个视图都必须定义它们
  • wrap_content 指示您的视图将其大小调整为内容所需的尺寸。
  • match_parent 指示您的视图尽可能采用其父视图组所允许的最大尺寸。
  • 建议不要使用绝对单位(如像素)来指定布局宽度和高度, 而是使用相对测量单位,如密度无关像素单位 (dp)、wrap_content 或 match_parent,这种方法更好,因为它有助于确保您的应用在各类尺寸的设备屏幕上正确显示

使用适配器构建布局

如果布局的内容是属于动态或未预先确定的内容,您可以使用这样一种布局:在运行时通过子类 AdapterView 用视图填充布局。 AdapterView 类的子类使用 Adapter 将数据与其布局绑定。Adapter 充当数据源与 AdapterView 布局之间的中间人—Adapter(从数组或数据库查询等来源)检索数据,并将每个条目转换为可以添加到 AdapterView 布局中的视图。
* 常见的适配器布局有

1.列表视图
    显示滚动的单项列表
2.网格视图
    显示滚动的行列网格

使用数据填充适配器视图

通过将 AdapterView 实例与 Adapter 绑定来填充 AdapterView(如 ListView 或 GridView),此操作会从外部来源检索数据,并创建表示每个数据条目的 View。

  • 两种最常见的适配器是:ArrayAdapter 和SimpleCursorAdapter
ArrayAdapter
数据源为数组时使用的适配器
默认情况下,ArrayAdapter 会通过在每个项目上调用 toString() 并将内容放入 TextView 来为每个数组项创建视图。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.item, myStringArray);

    ListView listView = (ListView) findViewById(R.id.listview); 
    listView.setAdapter(adapter);
参数:第一个为上下文 第二个为包含数组中每个字符串的 TextView 的布局 第三个为字符串数组
SimpleCursorAdapter
数据来自 Cursor 时使用此适配器
使用时必须指定要为 Cursor 中的每个行使用的布局,以及应该在哪些布局视图中插入 Cursor 中的哪些列
SimpleAdapter
是扩展性最好的适配器,可定义各种你想要的布局,而且使用很方便
SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

参数context:上下文,比如this。关联SimpleAdapter运行的视图上下文
参数data:Map列表,列表要显示的数据,这部分需要自己实现,如例子中的getData(),类型要与上面的一致,每条项目要与from中指定条目一致
参数resource:ListView单项布局文件的Id,这个布局就是你自定义的布局了,你想显示什么样子的布局都在这个布局中。这个布局中必须包括了to中定义的控件id
参数 from:一个被添加到Map上关联每一个项目列名称的列表,数组里面是列名称
参数 to:是一个int数组,数组里面的id是自定义布局中各个控件的id,需要与上面的from对应

* SimpleAdapter可以使用自定义的ListView,然后setContentView即可。也可以直接使用系统自带的ListAcitivity,该ListActivity实现了ListView,显示ListView的时候做了很多优化。
ListActivity直接extends ListActivity即可,不需要在setContentView了

样式与主题

  • 样式:作于在控件上

    <style name="text_content_style">
        <item name="android:textSize">25sp</item>
        <item name="android:textColor">#ff0000</item>
        <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">wrap_content</item>
    

  • 主题:作用在Activity身上 theme

    <style name="my_theme" parent="Theme.AppCompat">
        <item name="android:windowNoTitle">true</item>
        <item name="android:background">#00ff00</item>
    </style>
    

暂时就看了这么多,也终于开始了我的Android之路,看的是developer.android.com的官方文档,幸亏翻译成中文了,不然我这个学渣就一脸懵逼了,现在的目标就是每天都可以get到新技能!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值