[转]Android中的android:layout_width和android:width

android:width 其实是定义控件上面的文本(TextView) 的宽度,当然这个宽度也是和 android:layout_width 配合起来作用的,如果 android:layout_width="fill_parent" 的话,那么设置 android:width 是没有意义的

android:layout_width 其实是可以实现 android:width 的效果的,我觉得这应该是为什么在 android 实例中看不到有人用 android:width 的原因吧。

若还要讲讲两者的区别的话,那就是:
android:width 的值,一般是 "100dp" 这样的数值;
android:layout_width 的值,一般是"fill_parent","wrap_content","match_parent".当然,它也可以像前者一样,设置数值的.

带"layout"的属性是指整个控件而言的,是与父控件之间的关系,如 layout_gravity 在父控件中的对齐方式, layout_margin 是级别相同的控件之间的间隙等等;

不带"layout" 的属性是指控件中文本的格式,如gravity是指文本的对齐方式等等,而其中文本的格式又受制约于它的控件在父控件中的属性.

借用一位大牛的示例:http://zhangcong170.iteye.com/blog/423173

[html] view plaincopyprint?

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <!--
    3. <LinearLayout>
    4. 线性版面配置,在这个标签中,所有元件都是按由上到下的排队排成的
    5. -->
    6. <LinearLayout
    7. xmlns:android="http://schemas.android.com/apk/res/android"
    8. android:orientation="vertical"
    9. android:layout_width="fill_parent"
    10. android:layout_height="fill_parent">
    11. <!-- android:orientation="vertical" 表示竖直方式对齐
    12. android:orientation="horizontal"表示水平方式对齐
    13. android:layout_width="fill_parent"定义当前视图在屏幕上 可以消费的宽度,fill_parent即填充整个屏幕。
    14. android:layout_height="wrap_content":随着文字栏位的不同 而改变这个视图的宽度或者高度。有点自动设置框度或者高度的意思
    15. layout_weight 用于给一个线性布局中的诸多视图的重要度赋值。
    16. 所有的视图都有一个layout_weight值,默认为零,意思是需要显示
    17. 多大的视图就占据多大的屏幕空 间。若赋一个高于零的值,则将父视
    18. 图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight
    19. 值以及该值在当前屏幕布局的整体 layout_weight值和在其它视图屏幕布
    20. 局的layout_weight值中所占的比率而定。
    21. 举个例子:比如说我们在 水平方向上有一个文本标签和两个文本编辑元素。
    22. 该文本标签并无指定layout_weight值,所以它将占据需要提供的最少空间。
    23. 如果两个文本编辑元素每一个的layout_weight值都设置为1,则两者平分
    24. 在父视图布局剩余的宽度(因为我们声明这两者的重要度相等)。如果两个
    25. 文本编辑元素其中第一个的layout_weight值设置为1,而第二个的设置为2,
    26. 则剩余空间的三分之二分给第一个,三分之一分给第二个(数值越小,重要
    27. 度越高)。
    28. -->
    29. <LinearLayout
    30. android:orientation="horizontal"
    31. android:layout_width="fill_parent"
    32. android:layout_height="fill_parent"
    33. android:layout_weight="1">
    34. <TextView
    35. android:text="red"
    36. android:gravity="center_horizontal"
    37. android:background="#aa0000"
    38. android:layout_width="wrap_content"
    39. android:layout_height="fill_parent"
    40. android:layout_weight="1"/>
    41. <TextView
    42. android:text="green"
    43. android:gravity="center_horizontal"
    44. android:background="#00aa00"
    45. android:layout_width="wrap_content"
    46. android:layout_height="fill_parent"
    47. android:layout_weight="1"/>
    48. <TextView
    49. android:text="blue"
    50. android:gravity="center_horizontal"
    51. android:background="#0000aa"
    52. android:layout_width="wrap_content"
    53. android:layout_height="fill_parent"
    54. android:layout_weight="1"/>
    55. <TextView
    56. android:text="yellow"
    57. android:gravity="center_horizontal"
    58. android:background="#aaaa00"
    59. android:layout_width="wrap_content"
    60. android:layout_height="fill_parent"
    61. android:layout_weight="1"/>
    62. </LinearLayout>
    63. <LinearLayout
    64. android:orientation="vertical"
    65. android:layout_width="fill_parent"
    66. android:layout_height="fill_parent"
    67. android:layout_weight="2">
    68. <TextView
    69. android:text="row one"
    70. android:textSize="15pt"
    71. android:layout_width="fill_parent"
    72. android:layout_height="wrap_content"
    73. android:layout_weight="1"/>
    74. <TextView
    75. android:text="row two"
    76. android:textSize="15pt"
    77. android:layout_width="fill_parent"
    78. android:layout_height="wrap_content"
    79. android:layout_weight="1"/>
    80. <TextView
    81. android:text="row three"
    82. android:textSize="15pt"
    83. android:layout_width="fill_parent"
    84. android:layout_height="wrap_content"
    85. android:layout_weight="1"/>
    86. <TextView
    87. android:text="row four"
    88. android:textSize="15pt"
    89. android:layout_width="fill_parent"
    90. android:layout_height="wrap_content"
    91. android:layout_weight="1"/>
    92. </LinearLayout>
    93. </LinearLayout>
时间: 2024-12-17 18:37:50

[转]Android中的android:layout_width和android:width的相关文章

android中少用静态变量(android静态变量static生命周期)

在android中,要少用静态变量. 我现在做的一个应用中,之前的开发人员使用静态变量来存储cookie,这个全局的静态变量用来验证身份. 这时客户反应,应用长时间不使用,再次使用,会提示身份过期. 后来经查,问题基本确定在静态变量上. 上stackoverflow查了android中static变量的生命周期,有人这么说 Lifetime of a static variable: A static variable comes into existence when a class is l

05课Android中的布局2---【呼啸Android开发视频教程】

今天是第五课,主要讲了android中的tableLayout和frameLayout. 没有讲解absoluteLayout.这个布局我们应该杜绝使用. 播放地址: 第五课点击打开 关于呼啸Android视频: 这套视频的最大特点是实用,哪些该讲,哪些不该讲,我都做了细致的考虑.没有虚头八脑,卖弄学问,也没用冗长的东西.一切都力求简单明了,清晰透彻.

在android 中发送和解析json ,android处理json字符串

在我开发的应用程序,我想以JSON对象的形式将消息发送到一个Django服务器和解析来自服务器的JSON响应,并填充自对应的视图列表. 我以前对json懂一点,我想从服务器返回如下这种格式 { "post": { "username": "someusername", "message": "this is a sweet message", "image": "http://

Android中通过反射来设置显示时间

这个Toast的显示在Android中的用途还是很大的,同时我们也知道toast显示的时间是不可控的,我们只能修改他的显示样式和显示的位置,虽然他提供了一个显示时间的设置方法,但是那是没有效果的(后面会说到),他有两个静态的常量Toast.SHORT和Toast.LONG,这个在后面我会在源码中看到这个两个时间其实是2.5s和3s.那么我们如果真想控制toast的显示时间该怎么办呢?真的是无计可施了吗?天无绝人之路,而且Linux之父曾经说过:遇到问题就去看那个操蛋的源代码吧!!下面就从源代码开

Android中Dialog对话框的调用及监听

Android中经常会需要在Android界面上弹出一些对话框提示用户,比如App的退出的时候都会有各种框来挽留你的心,支付宝的时候输入密码的密码框,非常常见及其实用的功能,类似于JS中的alter,C#中C/S中常用MessgeBox,总而言之就是一个功能弹,弹,弹,本文就简单的叙述一下Dialog的各种弹框使用及监听,顺便写了一个简单的自定义弹框,接下来请看正文: 一般对话框 先看下整个App页面: 看下一般对话框的结果: 具体代码的实现,其中定义了两个按钮,一个是确定(PositiveBu

Android中AsyncTask使用具体解释

在Android中我们能够通过Thread+Handler实现多线程通信.一种经典的使用场景是:在新线程中进行耗时操作.当任务完毕后通过Handler向主线程发送Message.这样主线程的Handler在收到该Message之后就能够进行更新UI的操作.上述场景中须要分别在Thread和Handler中编写代码逻辑,为了使得代码更加统一,我们能够使用AsyncTask类. AsyncTask是Android提供的一个助手类,它对Thread和Handler进行了封装,方便我们使用. Andro

android中的事件传递和处理机制

一直以来,都被android中的事件传递和处理机制深深的困扰!今天特意来好好的探讨一下.现在的感觉是,只要你理解到位,其实事件的 传递和处理机制并没有想象中的那么难.总之,不要自己打击自己,要相信自己能掌握这块知识.好了,下面是我今天的收获,希望也 能对你有一点帮助. 一.拟人化来理解android中的事件机制 其实android中的事件传递与处理机制跟我们生活中的事件处理是一样的.这里有一个生活中的例子,很能说明这个问题.阐述如下: 你是一个公司的员工,你的上头有一个主管,主管上头呢还有一个经

在android中使用SQLite数据库

SQLite数据库以其轻量.体积小等特点,使其在开发中运用的非常广泛,在前面的博客中我也介绍过在Cocos2d-x中使用SQLite数据库,这篇博客是介绍在Android中使用SQLite数据库,Android中直接集成了SQLite数据库,使用起来非常方便,不需要向Cocos2d-x中那样添加外部文件 我将使用SQLite数据库实现一个下图所示的效果,打开app后会弹出下图所示的界面 单击createDatabase按钮后,在logcat中可以看到打印了一条提示信息,表示数据库创建成功,当再次

(转)详解Android中AsyncTask的使用

转载自:详解Android中AsyncTask的使用 在Android中实现异步任务机制有两种方式,Handler和AsyncTask. Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制.关于Handler的相关知识,前面也有所介绍,不清楚的朋友们可以参照一下. 为了简化操作,Android1.5提供了工具类a

Android中通过反射来设置Toast的显示时间

这个Toast的显示在Android中的用途还是非常大的,同一时候我们也知道toast显示的时间是不可控的.我们仅仅能改动他的显示样式和显示的位置,尽管他提供了一个显示时间的设置方法.可是那是没有效果的(后面会说到).他有两个静态的常量Toast.SHORT和Toast.LONG,这个在后面我会在源码中看到这个两个时间事实上是2.5s和3s. 那么我们假设真想控制toast的显示时间该怎么办呢?真的是无计可施了吗?天无绝人之路,并且Linux之父以前说过:遇到问题就去看那个操蛋的源码吧.!以下就