当前位置:   article > 正文

【Android】安卓野路子学习项目之Android计算器(一)——界面布局

android计算器

前言

此篇文章仅作为我的学习总结,结合我在学校所学,并参考B站up主Ezralin的视频边学边做,文章末尾附上原视频链接,在此也感谢up的视频,让我学会了很多的android知识。

圆角矩形参考站内作者:jackiesky1206的文章

使用软件:Android studio 的 2022.3.1 Patch 1 版本

一、新建工程

点击“New Project”新建一个项目文件

在新窗口中选择“Empty Views Activity”并点击“Next”

然后修改“Name”为“CalculatorSecon”,修改项目的保存路径(save location)此处我的项目路径为D:\AndroidProject\CalculatorSecon 然后修改“Language”为“Java”最后 点击Finish。到此新建工程完成。(因为我使用的是Android Studio 的 2022.3.1 版本,所以新建项目与up视频中的不同)

新建项目完成之后,现实如下:

二、结构划分

up的视频中将计算器界面分为了三部分从上到下依次为:

输入显示部分

结果显示部分

按键输入部分

三、布局代码填充

接下来开始写代码的布局,首先先点击“activity_main.xml”文件然后点击“Split”,如果找不到“activity_main.xml”文件,也可以打开左侧项目结构栏res→layout→activity_main.xml

Tips:接下来的activity_main.xml的主体代码将分段展示,若看不太懂结构的同学可直接跳转至第四部分完整代码。

(1)输入显示部分

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:orientation="vertical"
  8. tools:context=".MainActivity">
  9. <!--输入显示区-->
  10. <TextView
  11. android:layout_width="match_parent"
  12. android:layout_height="0dp"
  13. android:layout_weight="2"
  14. android:background="#a8d67f"
  15. android:gravity="bottom|right"
  16. android:padding="10dp"
  17. android:text="0"
  18. android:textColor="@color/white"
  19. android:textSize="30sp" />

(2)结果显示部分

  1. <!--结果显示区-->
  2. <TextView
  3. android:layout_width="match_parent"
  4. android:layout_height="0dp"
  5. android:layout_weight="1"
  6. android:background="#72b780"
  7. android:gravity="bottom|right"
  8. android:padding="10dp"
  9. android:text="0"
  10. android:textColor="@color/white"
  11. android:textSize="30sp" />

(3)按键输入部分

  1. <!--按键输入区-->
  2. <LinearLayout
  3. android:layout_width="match_parent"
  4. android:layout_height="0dp"
  5. android:layout_weight="4">
  6. <!--左侧按键区-->
  7. <LinearLayout
  8. android:layout_width="0dp"
  9. android:layout_height="match_parent"
  10. android:layout_weight="3"
  11. android:background="#fefefe"
  12. android:orientation="vertical">
  13. <!--按键第一行-->
  14. <LinearLayout
  15. android:layout_width="match_parent"
  16. android:layout_height="0dp"
  17. android:layout_weight="1"
  18. android:orientation="horizontal"
  19. android:padding="10dp"
  20. android:background="@drawable/circle_rectangle">
  21. <Button
  22. android:id="@+id/clearTextView"
  23. android:layout_width="0dp"
  24. android:layout_height="match_parent"
  25. android:layout_weight="1"
  26. android:text="AC"
  27. android:textSize="30sp"
  28. android:layout_marginRight="10dp"
  29. android:textColor="@android:color/darker_gray"
  30. android:background="@android:color/transparent"
  31. />
  32. <ImageButton
  33. android:id="@+id/backspace"
  34. android:layout_width="0dp"
  35. android:layout_height="match_parent"
  36. android:layout_weight="1"
  37. android:src="@drawable/backspace"
  38. android:background="@android:color/transparent"
  39. />
  40. <Button
  41. android:layout_width="0dp"
  42. android:layout_height="match_parent"
  43. android:layout_weight="1"
  44. android:text="%"
  45. android:textSize="30sp"
  46. android:layout_marginLeft="10dp"
  47. android:textColor="@android:color/darker_gray"
  48. android:background="@android:color/transparent"
  49. />
  50. </LinearLayout>
  51. <!--按键第二行-->
  52. <LinearLayout
  53. android:layout_width="match_parent"
  54. android:layout_height="0dp"
  55. android:layout_weight="1"
  56. android:orientation="horizontal"
  57. android:padding="10dp">
  58. <Button
  59. android:id="@+id/button_one"
  60. android:layout_width="0dp"
  61. android:layout_height="match_parent"
  62. android:layout_marginRight="10dp"
  63. android:layout_weight="1"
  64. android:background="@android:color/transparent"
  65. android:text="1"
  66. android:textColor="@color/black"
  67. android:textSize="30sp" />
  68. <Button
  69. android:id="@+id/button_tow"
  70. android:layout_width="0dp"
  71. android:layout_height="match_parent"
  72. android:layout_weight="1"
  73. android:background="@android:color/transparent"
  74. android:text="2"
  75. android:textColor="@color/black"
  76. android:textSize="30sp" />
  77. <Button
  78. android:id="@+id/button_three"
  79. android:layout_width="0dp"
  80. android:layout_height="match_parent"
  81. android:layout_marginLeft="10dp"
  82. android:layout_weight="1"
  83. android:background="@android:color/transparent"
  84. android:text="3"
  85. android:textColor="@color/black"
  86. android:textSize="30sp" />
  87. </LinearLayout>
  88. <!--按键第三行-->
  89. <LinearLayout
  90. android:layout_width="match_parent"
  91. android:layout_height="0dp"
  92. android:layout_weight="1"
  93. android:orientation="horizontal"
  94. android:padding="10dp">
  95. <Button
  96. android:id="@+id/button_four"
  97. android:layout_width="0dp"
  98. android:layout_height="match_parent"
  99. android:layout_marginRight="10dp"
  100. android:layout_weight="1"
  101. android:background="@android:color/transparent"
  102. android:text="4"
  103. android:textColor="@color/black"
  104. android:textSize="30sp" />
  105. <Button
  106. android:id="@+id/button_five"
  107. android:layout_width="0dp"
  108. android:layout_height="match_parent"
  109. android:layout_weight="1"
  110. android:background="@android:color/transparent"
  111. android:text="5"
  112. android:textColor="@color/black"
  113. android:textSize="30sp" />
  114. <Button
  115. android:id="@+id/button_six"
  116. android:layout_width="0dp"
  117. android:layout_height="match_parent"
  118. android:layout_marginLeft="10dp"
  119. android:layout_weight="1"
  120. android:background="@android:color/transparent"
  121. android:text="6"
  122. android:textColor="@color/black"
  123. android:textSize="30sp" />
  124. </LinearLayout>
  125. <!--按键第四行-->
  126. <LinearLayout
  127. android:layout_width="match_parent"
  128. android:layout_height="0dp"
  129. android:layout_weight="1"
  130. android:orientation="horizontal"
  131. android:padding="10dp">
  132. <Button
  133. android:id="@+id/button_seven"
  134. android:layout_width="0dp"
  135. android:layout_height="match_parent"
  136. android:layout_marginRight="10dp"
  137. android:layout_weight="1"
  138. android:background="@android:color/transparent"
  139. android:text="7"
  140. android:textColor="@color/black"
  141. android:textSize="30sp" />
  142. <Button
  143. android:id="@+id/button_"
  144. android:layout_width="0dp"
  145. android:layout_height="match_parent"
  146. android:layout_weight="1"
  147. android:background="@android:color/transparent"
  148. android:text="8"
  149. android:textColor="@color/black"
  150. android:textSize="30sp" />
  151. <Button
  152. android:id="@+id/button_nine"
  153. android:layout_width="0dp"
  154. android:layout_height="match_parent"
  155. android:layout_marginLeft="10dp"
  156. android:layout_weight="1"
  157. android:background="@android:color/transparent"
  158. android:text="9"
  159. android:textColor="@color/black"
  160. android:textSize="30sp" />
  161. </LinearLayout>
  162. <!--按键第五行-->
  163. <LinearLayout
  164. android:layout_width="match_parent"
  165. android:layout_height="0dp"
  166. android:layout_weight="1"
  167. android:orientation="horizontal"
  168. android:padding="10dp">
  169. <Button
  170. android:layout_width="0dp"
  171. android:layout_height="match_parent"
  172. android:layout_marginRight="10dp"
  173. android:layout_weight="1"
  174. android:background="@android:color/transparent"
  175. android:textColor="@color/black"
  176. android:text="."
  177. android:textSize="30sp" />
  178. <Button
  179. android:layout_width="0dp"
  180. android:layout_height="match_parent"
  181. android:layout_weight="1"
  182. android:background="@android:color/transparent"
  183. android:textColor="@color/black"
  184. android:text="0"
  185. android:textSize="30sp" />
  186. <Button
  187. android:layout_width="0dp"
  188. android:layout_height="match_parent"
  189. android:layout_marginLeft="10dp"
  190. android:layout_weight="1"
  191. android:background="@android:color/transparent"
  192. android:textColor="@color/black"
  193. android:text="00"
  194. android:textSize="30sp" />
  195. </LinearLayout>

(4)圆角矩形的代码编写

在左侧项目结构栏点击res→drawable→右键→New→选择“Drawable Resource File”

修改File name为“circle_rectangle ”

修改Root element为“shape”

点击“OK”

 代码内容如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:shape="rectangle"
  4. >
  5. <corners android:radius="50dp"/>
  6. <stroke
  7. android:width="20px"
  8. android:color="#001E90FF"/>
  9. <solid android:color="#F7F7F7"/>
  10. <padding
  11. android:bottom="40dp"
  12. android:left="40dp"
  13. android:right="40dp"
  14. android:top="40dp"
  15. />
  16. </shape>

(5)backspace图形按键的编写

在左侧项目结构栏点击res→drawable→右键→New→选择“Vector Asset”

修改Name为“backspace”

点击“Clip art”

搜索“backspace”并选择你喜欢的图标

Size与Color选择自己 喜欢的大小与颜色

Opacity选择50%或者100%

点击“Finish”

至此才算完成了全部的界面布局代码的编写。

  

(6)效果图

四、完整代码

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:orientation="vertical"
  8. tools:context=".MainActivity">
  9. <!--输入显示区-->
  10. <TextView
  11. android:layout_width="match_parent"
  12. android:layout_height="0dp"
  13. android:layout_weight="2"
  14. android:background="#a8d67f"
  15. android:gravity="bottom|right"
  16. android:padding="10dp"
  17. android:text="0"
  18. android:textColor="@color/white"
  19. android:textSize="30sp" />
  20. <!--结果显示区-->
  21. <TextView
  22. android:layout_width="match_parent"
  23. android:layout_height="0dp"
  24. android:layout_weight="1"
  25. android:background="#72b780"
  26. android:gravity="bottom|right"
  27. android:padding="10dp"
  28. android:text="0"
  29. android:textColor="@color/white"
  30. android:textSize="30sp" />
  31. <!--按键输入区-->
  32. <LinearLayout
  33. android:layout_width="match_parent"
  34. android:layout_height="0dp"
  35. android:layout_weight="4">
  36. <!--左侧按键区-->
  37. <LinearLayout
  38. android:layout_width="0dp"
  39. android:layout_height="match_parent"
  40. android:layout_weight="3"
  41. android:background="#fefefe"
  42. android:orientation="vertical">
  43. <!--按键第一行-->
  44. <LinearLayout
  45. android:layout_width="match_parent"
  46. android:layout_height="0dp"
  47. android:layout_weight="1"
  48. android:orientation="horizontal"
  49. android:padding="10dp"
  50. android:background="@drawable/circle_rectangle">
  51. <Button
  52. android:id="@+id/clearTextView"
  53. android:layout_width="0dp"
  54. android:layout_height="match_parent"
  55. android:layout_weight="1"
  56. android:text="AC"
  57. android:textSize="30sp"
  58. android:layout_marginRight="10dp"
  59. android:textColor="@android:color/darker_gray"
  60. android:background="@android:color/transparent"
  61. />
  62. <ImageButton
  63. android:id="@+id/backspace"
  64. android:layout_width="0dp"
  65. android:layout_height="match_parent"
  66. android:layout_weight="1"
  67. android:src="@drawable/backspace"
  68. android:background="@android:color/transparent"
  69. />
  70. <Button
  71. android:layout_width="0dp"
  72. android:layout_height="match_parent"
  73. android:layout_weight="1"
  74. android:text="%"
  75. android:textSize="30sp"
  76. android:layout_marginLeft="10dp"
  77. android:textColor="@android:color/darker_gray"
  78. android:background="@android:color/transparent"
  79. />
  80. </LinearLayout>
  81. <!--按键第二行-->
  82. <LinearLayout
  83. android:layout_width="match_parent"
  84. android:layout_height="0dp"
  85. android:layout_weight="1"
  86. android:orientation="horizontal"
  87. android:padding="10dp">
  88. <Button
  89. android:id="@+id/button_one"
  90. android:layout_width="0dp"
  91. android:layout_height="match_parent"
  92. android:layout_marginRight="10dp"
  93. android:layout_weight="1"
  94. android:background="@android:color/transparent"
  95. android:text="1"
  96. android:textColor="@color/black"
  97. android:textSize="30sp" />
  98. <Button
  99. android:id="@+id/button_tow"
  100. android:layout_width="0dp"
  101. android:layout_height="match_parent"
  102. android:layout_weight="1"
  103. android:background="@android:color/transparent"
  104. android:text="2"
  105. android:textColor="@color/black"
  106. android:textSize="30sp" />
  107. <Button
  108. android:id="@+id/button_three"
  109. android:layout_width="0dp"
  110. android:layout_height="match_parent"
  111. android:layout_marginLeft="10dp"
  112. android:layout_weight="1"
  113. android:background="@android:color/transparent"
  114. android:text="3"
  115. android:textColor="@color/black"
  116. android:textSize="30sp" />
  117. </LinearLayout>
  118. <!--按键第三行-->
  119. <LinearLayout
  120. android:layout_width="match_parent"
  121. android:layout_height="0dp"
  122. android:layout_weight="1"
  123. android:orientation="horizontal"
  124. android:padding="10dp">
  125. <Button
  126. android:id="@+id/button_four"
  127. android:layout_width="0dp"
  128. android:layout_height="match_parent"
  129. android:layout_marginRight="10dp"
  130. android:layout_weight="1"
  131. android:background="@android:color/transparent"
  132. android:text="4"
  133. android:textColor="@color/black"
  134. android:textSize="30sp" />
  135. <Button
  136. android:id="@+id/button_five"
  137. android:layout_width="0dp"
  138. android:layout_height="match_parent"
  139. android:layout_weight="1"
  140. android:background="@android:color/transparent"
  141. android:text="5"
  142. android:textColor="@color/black"
  143. android:textSize="30sp" />
  144. <Button
  145. android:id="@+id/button_six"
  146. android:layout_width="0dp"
  147. android:layout_height="match_parent"
  148. android:layout_marginLeft="10dp"
  149. android:layout_weight="1"
  150. android:background="@android:color/transparent"
  151. android:text="6"
  152. android:textColor="@color/black"
  153. android:textSize="30sp" />
  154. </LinearLayout>
  155. <!--按键第四行-->
  156. <LinearLayout
  157. android:layout_width="match_parent"
  158. android:layout_height="0dp"
  159. android:layout_weight="1"
  160. android:orientation="horizontal"
  161. android:padding="10dp">
  162. <Button
  163. android:id="@+id/button_seven"
  164. android:layout_width="0dp"
  165. android:layout_height="match_parent"
  166. android:layout_marginRight="10dp"
  167. android:layout_weight="1"
  168. android:background="@android:color/transparent"
  169. android:text="7"
  170. android:textColor="@color/black"
  171. android:textSize="30sp" />
  172. <Button
  173. android:id="@+id/button_"
  174. android:layout_width="0dp"
  175. android:layout_height="match_parent"
  176. android:layout_weight="1"
  177. android:background="@android:color/transparent"
  178. android:text="8"
  179. android:textColor="@color/black"
  180. android:textSize="30sp" />
  181. <Button
  182. android:id="@+id/button_nine"
  183. android:layout_width="0dp"
  184. android:layout_height="match_parent"
  185. android:layout_marginLeft="10dp"
  186. android:layout_weight="1"
  187. android:background="@android:color/transparent"
  188. android:text="9"
  189. android:textColor="@color/black"
  190. android:textSize="30sp" />
  191. </LinearLayout>
  192. <!--按键第五行-->
  193. <LinearLayout
  194. android:layout_width="match_parent"
  195. android:layout_height="0dp"
  196. android:layout_weight="1"
  197. android:orientation="horizontal"
  198. android:padding="10dp">
  199. <Button
  200. android:layout_width="0dp"
  201. android:layout_height="match_parent"
  202. android:layout_marginRight="10dp"
  203. android:layout_weight="1"
  204. android:background="@android:color/transparent"
  205. android:textColor="@color/black"
  206. android:text="."
  207. android:textSize="30sp" />
  208. <Button
  209. android:layout_width="0dp"
  210. android:layout_height="match_parent"
  211. android:layout_weight="1"
  212. android:background="@android:color/transparent"
  213. android:textColor="@color/black"
  214. android:text="0"
  215. android:textSize="30sp" />
  216. <Button
  217. android:layout_width="0dp"
  218. android:layout_height="match_parent"
  219. android:layout_marginLeft="10dp"
  220. android:layout_weight="1"
  221. android:background="@android:color/transparent"
  222. android:textColor="@color/black"
  223. android:text="00"
  224. android:textSize="30sp" />
  225. </LinearLayout>
  226. </LinearLayout>
  227. <!--右侧按键区域-->
  228. <LinearLayout
  229. android:layout_width="0dp"
  230. android:layout_height="match_parent"
  231. android:layout_weight="1"
  232. android:background="@drawable/circle_rectangle"
  233. android:orientation="vertical"
  234. android:padding="10dp">
  235. <Button
  236. android:id="@+id/divideBtn"
  237. android:layout_width="match_parent"
  238. android:layout_height="0dp"
  239. android:layout_weight="1"
  240. android:background="@android:color/transparent"
  241. android:text="÷"
  242. android:textColor="@color/black"
  243. android:textSize="30sp" />
  244. <Button
  245. android:id="@+id/multiplyBtn"
  246. android:layout_width="match_parent"
  247. android:layout_height="0dp"
  248. android:layout_weight="1"
  249. android:background="@android:color/transparent"
  250. android:text="×"
  251. android:textColor="@color/black"
  252. android:textSize="30sp" />
  253. <Button
  254. android:id="@+id/minusBtn"
  255. android:layout_width="match_parent"
  256. android:layout_height="0dp"
  257. android:layout_weight="1"
  258. android:background="@android:color/transparent"
  259. android:text="-"
  260. android:textColor="@color/black"
  261. android:textSize="30sp" />
  262. <Button
  263. android:id="@+id/addBtn"
  264. android:layout_width="match_parent"
  265. android:layout_height="0dp"
  266. android:layout_weight="1"
  267. android:background="@android:color/transparent"
  268. android:text="+"
  269. android:textColor="@color/black"
  270. android:textSize="30sp" />
  271. <Button
  272. android:id="@+id/equalBtn"
  273. android:layout_width="match_parent"
  274. android:layout_height="0dp"
  275. android:layout_weight="1"
  276. android:background="@android:color/transparent"
  277. android:text="="
  278. android:textColor="@color/black"
  279. android:textSize="30sp"
  280. />
  281. </LinearLayout>
  282. </LinearLayout>
  283. </LinearLayout>

此处仅为activity_main.xml的完整代码,并不是整套界面布局的代码,还须要返回观看“圆角矩形的代码编写”与“backspace图形按键的编写”

五、链接

此链接为圆角矩形的参考代码链接: 

https://blog.csdn.net/xiaohelan/article/details/105514130

此链接为视频链接:

https://www.bilibili.com/video/BV1xB4y1v7SV/?spm_id_from=333.337.search-card.all.click&vd_source=cfc1b990f3941ebdfe1544befb7cc3fb

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/325385
推荐阅读
相关标签
  

闽ICP备14008679号