当前位置:   article > 正文

Android常用布局之LinearLayout之简易计算器_利用linearlayout线性布局,以及edittext 和button控件,设计并实现简易计算器

利用linearlayout线性布局,以及edittext 和button控件,设计并实现简易计算器界面

传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229

1布局(Layout)

        简单的说,Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在AndroidManifest.xml中指定一个主的Activity,如下设置:

  1. <activity android:label="@string/app_name" android:name=".MainActivity">
  2. <intent-filter>
  3. <action android:name="android.intent.action.MAIN" />
  4. <category android:name="android.intent.category.LAUNCHER" />
  5. </intent-filter>
  6. </activity>
        为了适应各种界面风格,Android提供了5种布局,这5种布局分别是:
FrameLayout(框架布局)、LinearLayout(线性布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、AbsoluteLayout(绝对布局)等。
        利用以上5种布局我们可以再手机屏幕上随心所欲的摆放各种控件。

2Android视图的创建

        在Android系统中,何的可视化控件都是从android.view.View继承的。开发人员可以使用两种方法来创建视图。
(1)使用XML方式来配置View的相关属性,然后装载这些View;
(2)完全使用java代码来创建View。

3使用XML布局文件定义视图

(1)xml布局文件是android系统中定义视图的常用方法,所有的布局文件必须包含在res/layout目录中。定义xml布局的命名和定义注意事项如下:
        xml布局文件必须是以xml文件名结束,命名必须是符合java的规范
        每一个xml布局文件的根节点可以是任意的控件标签
        xml布局文件的根节点必须是包含android的命名空间,命名空间必须是xmlns:android=http://schemas.android.com/apk/res/android
        为xml文件布局中的标签指定的id需要使用这样的格式:android:id="@+id/标签名称" 该标记会保存在R文件中
        每一个视图的id都会在R类中生成与之对应的变量,因此视图ID的值必须是符合java规范的
(2)如果需要使用xml布局文件,通常需要oncreate方法中使用setContentView来加载指定的xml布局文件
  1. @Override
  2. public void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. setContentView(R.layout.main);
  5. ...
  6. }
(3)获得xml布局文件应该注意:
        使用findViewById()方法之前需要调用setContentView()方法加载xml文件,否则布局文件会抛出异常信息。也就是说findViewById()方法要在setContentView()方法执行之后才能使用。所有的的xml文件布局文件的视图id都在R类生成相对应的变量。

4Android中长度单位

(1)px:屏幕实际的像素。例如,320*480的屏幕在横向有320个象素,在纵向有480个象素。
(2)dp:屏幕的物理尺寸,与密度有关的像素。大小为1英寸的1/72。
(3)sp:与密度、刻度无关的像素。与dp类似,但是可以根据用户的字体大小首选项进行缩放。

5Android布局中常用属性

(1)layout_margin设置控件边缘相对于父控件的边距
(2)layout_padding设置控件内容相对于控件边缘的边距
(3)android:gravity设置View组件的对齐方式
(4)android:layout_gravity设置Container组件的对齐方式

6线性布局(LinearLayout

(1)线性布局是最常用的布局线性布局在xml文件中使用<LinearLayout>来定义。
(2)线性布局可以分为水平和垂直的方向的布局,可以通过android:orientation="vertical"来定义方向,该属性可以有horizontal和vertical两个方向。
(3)<LinearLayout>标签中有一个很重要的属性gravity,该属性用于控制布局中视图的位置,如果设置多个值需要使用 | 进行分隔。
(4)android:layout_width和android_layout_height属性
        wrap_content 包裹内容
        fill_parent 填满父控件
        match_parent 与fill_parent一样,在Android2.2中启动match_parent,不用fill_parent
(5)android:layout_weight属性
        设置一个线性布局中诸多视图的重要度赋值。 

        所有的视图都有一个layout_weight值,默认为零,也就是说需要显示多大的视图就占据多大的屏幕空间。如果赋一个高于零的值,则会将父视图中的可用空间进行分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体layout_weight值和在其它视图屏幕布局的layout_weight值中所占的比率而定。      

(6)线性布局案例(模拟计算器界面)

a案例代码陈列

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:background="#FFFFFF">
  7. <LinearLayout android:orientation="horizontal"
  8. android:layout_width="match_parent"
  9. android:layout_height="wrap_content">
  10. <EditText
  11. android:id="@+id/msg"
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content" />
  14. </LinearLayout>
  15. <LinearLayout android:orientation="horizontal"
  16. android:layout_width="match_parent"
  17. android:layout_height="wrap_content">
  18. <Button android:layout_width="match_parent"
  19. android:layout_height="wrap_content"
  20. android:text="mc"
  21. androud:layout_weight="1" />
  22. <Button android:layout_width="match_parent"
  23. android:layout_height="wrap_content"
  24. android:text="m+"
  25. androud:layout_weight="1" />
  26. <Button android:layout_width="match_parent"
  27. android:layout_height="wrap_content"
  28. android:text="m-"
  29. androud:layout_weight="1" />
  30. <Button android:layout_width="match_parent"
  31. android:layout_height="wrap_content"
  32. android:text="mr"
  33. androud:layout_weight="1" />
  34. </LinearLayout>
  35. <LinearLayout android:orientation="horizontal"
  36. android:layout_width="match_parent"
  37. android:layout_height="wrap_content">
  38. <Button android:layout_width="match_parent"
  39. android:layout_height="wrap_content"
  40. android:text="C"
  41. androud:layout_weight="1" />
  42. <Button android:layout_width="match_parent"
  43. android:layout_height="wrap_content"
  44. android:text="+/-"
  45. androud:layout_weight="1" />
  46. <Button android:layout_width="match_parent"
  47. android:layout_height="wrap_content"
  48. android:text="/"
  49. androud:layout_weight="1" />
  50. <Button android:layout_width="match_parent"
  51. android:layout_height="wrap_content"
  52. android:text="*"
  53. androud:layout_weight="1" />
  54. </LinearLayout>
  55. <LinearLayout android:orientation="horizontal"
  56. android:layout_width="match_parent"
  57. android:layout_height="wrap_content">
  58. <Button android:layout_width="match_parent"
  59. android:layout_height="wrap_content"
  60. android:text="7"
  61. androud:layout_weight="1" />
  62. <Button android:layout_width="match_parent"
  63. android:layout_height="wrap_content"
  64. android:text="8"
  65. androud:layout_weight="1" />
  66. <Button android:layout_width="match_parent"
  67. android:layout_height="wrap_content"
  68. android:text="9"
  69. androud:layout_weight="1" />
  70. <Button android:layout_width="match_parent"
  71. android:layout_height="wrap_content"
  72. android:text="-"
  73. androud:layout_weight="1" />
  74. </LinearLayout>
  75. <LinearLayout android:orientation="horizontal"
  76. android:layout_width="match_parent"
  77. android:layout_height="wrap_content">
  78. <Button android:layout_width="match_parent"
  79. android:layout_height="wrap_content"
  80. android:text="4"
  81. androud:layout_weight="1" />
  82. <Button android:layout_width="match_parent"
  83. android:layout_height="wrap_content"
  84. android:text="5"
  85. androud:layout_weight="1" />
  86. <Button android:layout_width="match_parent"
  87. android:layout_height="wrap_content"
  88. android:text="6"
  89. androud:layout_weight="1" />
  90. <Button android:layout_width="match_parent"
  91. android:layout_height="wrap_content"
  92. android:text="+"
  93. androud:layout_weight="1" />
  94. </LinearLayout>
  95. <LinearLayout android:orientation="horizontal"
  96. android:layout_width="match_parent"
  97. android:layout_height="wrap_content">
  98. <LinearLayout android:orientation="vertical"
  99. android:layout_width="wrap_content"
  100. android:layout_height="wrap_content"
  101. android:layout_weight="3">
  102. <LinearLayout android:orientation="horizontal"
  103. android:layout_width="match_parent"
  104. android:layout_height="wrap_content">
  105. <Button android:layout_width="match_parent"
  106. android:layout_height="wrap_content"
  107. android:text="1"
  108. androud:layout_weight="1" />
  109. <Button android:layout_width="match_parent"
  110. android:layout_height="wrap_content"
  111. android:text="2"
  112. androud:layout_weight="1" />
  113. <Button android:layout_width="match_parent"
  114. android:layout_height="wrap_content"
  115. android:text="3"
  116. androud:layout_weight="1" />
  117. </LinearLayout>
  118. <LinearLayout android:orientation="horizontal"
  119. android:layout_width="match_parent"
  120. android:layout_height="wrap_content">
  121. <Button android:layout_width="0px"
  122. android:layout_height="wrap_content"
  123. android:text="0"
  124. androud:layout_weight="2" />
  125. <Button android:layout_width="0px"
  126. android:layout_height="wrap_content"
  127. android:text="."
  128. androud:layout_weight="1" />
  129. </LinearLayout>
  130. </LinearLayout>
  131. <LinearLayout android:orientation="horizontal"
  132. android:layout_width="wrap_content"
  133. android:layout_height="match_parent"
  134. android:layout_weight="1">
  135. <Button android:layout_width="match_parent"
  136. android:layout_height="match_parent"
  137. android:text="="
  138. androud:layout_weight="1" />
  139. </LinearLayout>
  140. </LinearLayout>
  141. </LinearLayout>

b案例效果展示


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/432384
推荐阅读
相关标签
  

闽ICP备14008679号