一、Android的程序结构

image-20240315192838342

(1)app:用于存放程序的代码和资源等内容,它有很多子目录如下:

  • libs: 用于存放第三方jar包
  • src/androidTest:存放调试的代码
  • src/main/java:用于存放程序的代码
  • src/main/res:用于存放程序的资源文件、
  • src/main/AndroidMainfest.xml: 整个程序的配置文件,可以配置程序所需要的权限和注册程序中用到的四大组件
  • app/build.gradle: 文件时App的gradle构建脚本,在该文件中有四个重要属性:
    • complieSdkVersion: SDK版本
    • buildToolsVersion: 编译的Tools版本,
    • minSdkVersion: 最低支持的Sdk版本,
    • targetSdkVersion: 支持的目标SDK版本

(2)build.gradle:是Android程序的gradle构建脚本

(3)local.properties: 改文件用于指定Android程序中所使用的SDK路径,如:sdk.dir=C\:\\Users\\28652\\AppData\\Local\\Android\\Sdk

(4)settings.gardle: 该文件用于配置在Android程序中使用到的子项目

二、资源的管理与使用

​ 在Android程序中的资源指的是可以带代码中使用的外部文件,这些文件作为程序的一部分,被编译到App中,Android中所有资源文件都保存在res目录下

1.图片资源

image-20240315195323285

通过java代码调用图片资源,也就是MainActivity文件中

        getResources().getDrawable(R.mipmap.ic_launcher);
        getResources().getDrawable(R.drawable.ic_launcher_background)

通过XML代码也就是在layout目录下的activity_main文件中,这里是调用在前景

    android:foreground="@mipmap/ic_launcher"
2.主题和资源的样式

​ 资源的样式在res/value目录下的theme.xml,在老版本中可能是style.xml,其中style标签中用于定义主题,name用于定义主题的名字,parent用于定义Android自带提供的父主题,然后item用于设置主题的样式,这里在item会报错,是因为在color下没有找到目标,不用管,在后面解决

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Base.Theme.HelloWorld" parent="Theme.Material3.DayNight.NoActionBar">
        <!-- Customize your light theme here. -->
        <!-- <item name="colorPrimary">@color/my_light_primary</item> -->
    </style>

    <style name="Theme.HelloWorld" parent="Base.Theme.HelloWorld" />
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>=
</resources>

在XML文件中调用主题

android:theme="@style/AppTheme"

在java中调用主题

setTheme(R.style.AppTheme);

主题可以改变整个窗口的样式,而通过样式可以改变单独控件的样式,name设置名字,而item可以设置控件的样式等

<resources>   
   <style name="textViewStyle">
        <item name="android:layout_width">100dp</item>
        <item name="android:layout_height">100dp</item>
<!--        <item name="android:background">#f54e39</item>-->
    </style>
</resources>   

在xml文件在控件里面可以通过style来调用

    <TextView
		...
        style="@style/textViewStyle"
        />
3.布局资源

layout目录下有个activiy_main.xml文件,这个文件的名字不是唯一可以修改,而且还可以在layout目录下在创建其他的布局文件,在Android开发中需要调用布局文件的方式有两种,一种是Java一种是Xml文件调用,

在java中调用布局文件

setContentView(R.layout.activity_main);

在xml文件中调用

<include layout="@layout/activity_main"/>
4.字符串资源

​ 在Android开发中可以使用映射的方式来定义字符串的名字,在res/value/strings.xml文件中,下面文件就是将app_name设置为HelloWorld这个字符串

<resources>
    <string name="app_name">HelloWorld</string>
</resources>

在XML文件中调用它

android:text="@string/app_name"

在java中调用

getResources().getString(R.string.app_name);
5.颜色资源

在我们主题定义了几个颜色,在color中找不到所以会报错,现在我们在color.xml文件创建这些颜色

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
</resources>

在java中调用

getResources().getColor(R.color.colorPrimary);
6.尺寸资源

​ 在value没有创建dimens.xml文件需要手动自己创建,右键点击values文件夹然后New--->XML--->Vaules XML File,输入dimens.xml文件名字,随后就可以在文件中定义尺寸的大小了

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
</resources>

在java中调用

getResources().getDimension(R.dimen.activity_horizontal_margin);

在xml文件中调用

android:layout_width="@dimen/activity_horizontal_margin"

Android中的尺寸单位:

  1. px:像素
  2. dp: 设备独立像素
  3. sp: 比例像素,主要处理字体的大小
  4. in: 英寸,一英寸等于2.54cm
  5. pt: 磅,屏幕物理长度单位
  6. mm: 毫米