Day3 Android - 资料夹分类

今天要来介绍有关於系统帮我们整理好的资料夹(app),理解後在设计上会有很大的帮助、且较为方便,我会讲解部分较为常用的资料夹,其中可分为四大类。
https://ithelp.ithome.com.tw/upload/images/20210713/20139259SAZqQ1A9Gv.png

  • manifests
  • java
  • res
  • Gradle Scripts(build gradle-module)

那麽首先由manifests开始。

manifests

在点开资料夹後可发现AndroidManifest.xml的档案,这个档案是每个应用程序会有的。
https://ithelp.ithome.com.tw/upload/images/20210713/20139259EBiTHzOCjD.png
里面储存了许多重要的资讯,其中包括:

  • 添加权限(permission)
  • 确定代码位址(package)
  • 应用程序图标(icon)
  • 应用程序名称(label)
  • 及各式程序组件-activity类、service类、receiver类、provider类等

详情:manifests参考资料

java

存放原始码(java)档案的地方,可用於和对应layout串接,实作出各类的功能。
https://ithelp.ithome.com.tw/upload/images/20210714/20139259wGilpR6Ack.png

res

里面主要又可分成四个部分。
https://ithelp.ithome.com.tw/upload/images/20210714/20139259J8qltMDq33.png

  • drawable
  • layout
  • mipmap
  • values

drawable

用於存放图片、自定义图形(包含颜色、形状等)、另外如果使用Image Asset的话,系统在里头也会新增(档名).background.xml,可以用来调整插入图片的大小、背景颜色等。
范本:
(其中mipmap里面的ic_laucher.xml包含了以下ic_laucher_background.xml及ic_laucher_foreground.xml 是系统预设的应用程序icon)
https://ithelp.ithome.com.tw/upload/images/20210714/20139259TjxcisIvEx.png
(由於排序是按英文字母的先与後,所以看起来比较不美观,敬请见谅。)

layout

你所设计的布局(包括你想显示的画面)
https://ithelp.ithome.com.tw/upload/images/20210714/20139259bi8yqDVGG0.png

mipmap

存放包含五种尺寸大小的图片,使其显示於不同萤幕大小的手机上,里面预设了包含foreground(图案)及background(背景)所结合的icon(ic_laucher.xml、ic_laucher_round.xml)。
https://ithelp.ithome.com.tw/upload/images/20210714/20139259Q9NMmSKm0O.png

values

里面分别的xml档可用来存放颜色(color.xml)、文字(string.xml)及theme的部分。(layout档可做取用)
如以下的程序片段:

    android:text="@string/app_name"; //My Application
    android:background="@color/black";//背景为黑色

原始程序:
color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="purple_200">#FFBB86FC</color>  <!--另外点选行数旁边的颜色块也可选取颜色-->
    <color name="purple_500">#FF6200EE</color>
    <color name="purple_700">#FF3700B3</color>
    <color name="teal_200">#FF03DAC5</color>
    <color name="teal_700">#FF018786</color>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>
</resources>

string.xml

<resources>
    <string name="app_name">My Application</string>
    <string name="Android">Hello Android!</string><!--string名称Android @string/设定的name可进行使用-->
</resources>

在提theme前先看到AndroidManifest.xml的其中一行。

android:theme="@style/Theme.MyApplication"

然後theme.xml

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>
</resources>

你会发现到说这支程序的应用主题是继承Theme.MaterialComponents.DayNight.DarkActionBar,而会使按钮上都采用固定的第一个颜色,也就是:

<item name="colorPrimary">@color/purple_500</item>

这边属於题外话,把Theme.MaterialComponents.DayNight.DarkActionBar改为Theme.MaterialComponents.DayNight.DarkActionBar.Bridge则能改善这样的情形,有兴趣的可以测试看看。

Gradle Scripts(build gradle-module)

https://ithelp.ithome.com.tw/upload/images/20210714/20139259xuxxU7DjEe.png
这是Gradle Scripts里头比较常用的档案,build gradle-module包含了辨识id、版本(version)和附加元件(dependencies)等,未来有提到gradle的部分都是在此做新增。


<<:  亏损也是获利的一环

>>:  [Day17] Tableau 轻松学 - 美化仪表板外观

【React Hook 02】useState

useState 顾名思义, 在 function component 中, 其功能相当於 Stat...

动态记忆体分配

先备知识: Linker Script 的撰写技巧 撰写 Linker Script 可以让编译器在...

[DAY 11]让BOT 24小时在线(2/3)

今天继续介绍如何在云端服务器上持续开启bot 但在进入replit之前需要在GitHub专案放进两个...

【D6】试用厨具:合约资料(Contracts)

前言 当可以登入後,我们首先要做的是取得商品资料,有商品才能做後续的交易,因此要取得商品或合约资讯。...

@Day22 | C# WixToolset + WPF 帅到不行的安装包 [建立基本的WPF框架]

终於 熬了那麽久 我们终於可以来首刻了…. 我们先创出一个是至少能加入的WPF视窗的类别库 可以直接...