Android 开发入门
文件结构
app
mainfests下面的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.INTERNET"/>//申请权限 <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher"//应用图标 android:label="@string/app_name"//应用名称 android:supportsRtl="true" android:theme="@style/Theme.MyApplication" tools:targetApi="31"> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
java
res
res下面有以下几个文件夹:
-
drwable
-
layout:布局文件,java文件用来控制程序逻辑,layout用来外观设计
-
mipmap
-
values
-
xml
2. layout 布局文件,
java文件用来控制程序逻辑,layout用来外观设计
4. values
包含3部分:
-
colors.xml:系统使用的所有颜色,都要在这里定义后才能使用
-
strings.xml:系统使用的所有String,都要在这里定义后才能使用
-
themes文件夹:主题样式:一般不修改
Gradle Scripts
包含:
- build.gradle(Module:app)
- gradle-wrapper.properties
- gradle.properties
- settings.gradle
- local.properties
build.gradle(Module:app)
plugins { id 'com.android.application' } android { namespace 'cn.edu.sdut.myapplication' compileSdk 33 defaultConfig { applicationId "cn.edu.sdut.myapplication" minSdk 24 targetSdk 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' }
gradle-wrapper.properties
声明gradle版本,gradle的位置
#Fri Feb 24 17:21:58 CST 2023 distributionBase=GRADLE_USER_HOME distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME
gradle.properties
# Project-wide Gradle settings. # IDE (e.g. Android Studio) users: # Gradle settings configured through the IDE *will override* # any settings specified in this file. # For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true # AndroidX package structure to make it clearer which packages are bundled with the # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true
AndroidX包是最新的android的系统包
settings.gradle
配置下载资源的位置
local.properties
sdk的路径配置
资源引入
图片资源
图片资源分类
- 应用图标资源:存放在mipmap文件夹中,直接在
AndroidManifest.xml
中引入。 - 界面中使用的图片资源:存放在drawable文件夹中,需要先在
dimen.xml
中定义,然后在java中引入。
调用图片资源的方法
1.通过Java代码调用图片资源
//调用mipmap文件夹中资源文件 getResources().getDrawable(R.mipmap.ic_launcher); //调用以drawable开头的文件夹中的资源文件 getResources().getDrawable(R.drawable.icon);
2.在XML布局文件中调用图片资源
@mipmap/ic_launcher //调用mipmap文件夹中的资源文件 @drawable/icon //调用以drawable开头的文件夹中的资源文件
主题和样式资源
主题是包含一种或多种的格式化属性集合,在程序中调用主题资源可改变窗体的样式,对整个应用或某个Activity存在全局性影响。
定义位置:res/values目录下的styles.xml文件中
标签
<style></style>:定义主题 <item></item>:设置主题的样式
布局资源
布局资源通常用于搭建程序中的各个界面。
定义位置:res/layout
文件夹中
调用方式
- 通过Java代码调用布局资源文件
//在Activity的onCreate()方法中调用activity_main.xml布局资源 setContentView(R.layout.activity_main);
- 在XML布局文件中调用布局资源文件
//在XML布局文件中调用activity_main.xml布局资源 <include layout="@layout/activity_main"/>
字符串资源
定义位置:res/values/文件夹的strings.xml
文件中
编写字符串资源内容
<resources> <string name="app_name">字符串</string> </resources>
调用方式
- 通过Java代码调用字符串资源
在Activity的onCreate()方法中调用名为app_name的字符串资源 getResources().getString(R.string.app_name);
- 在XML布局文件中调用字符串资源
//在XML布局文件中调用名为app_name字符串资源 @string/app_name
颜色资源
定义位置:res/values/
文件夹的colors.xml文件中
colors.xml文件中的颜色资源
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> </resources>
调用方式
- 通过Java代码调用颜色资源
//在Activity的onCreate()方法中调用名为colorPrimary的颜色资源 getResources().getColor(R.color.colorPrimary);
- 在XML布局文件中调用颜色资源
<!-- 在XML布局文件中调用名为colorPrimary的颜色资源 --> @color/colorPrimary
尺寸资源
尺寸资源:例如:View的宽高值
定义位置:res/values/文件夹的dimens.xml
文件中
创建dimens.xml文件:
右键单击values文件夹,选中【New】 【XML】 【Values XML File】,在弹出框中输入dimens。
编写尺寸资源
<resources> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> </resources>
调用方式
- 通过Java代码调用尺寸资源
在Activity的onCreate()方法中调用名为activity_horizontal_margin的颜色资源 getResources().getDimension(R.dimen.activity_horizontal_margin);
- 在XML布局文件中调用尺寸资源
<!-- 在XML布局文件中调用名为activity_horizontal_margin的尺寸资源 --> @dimen/activity_horizontal_margin
启用自适应图标
1.将图标文件设计好,存放在xx目录下
2.在 res 目录 右键-> New -> Image Asset
Image Asset功能图解
3.选择设计好的图标(前景和背景都要选择)
4.将图标引用改成 ImageAsset-Name栏的名字(默认为ic_launcher)
android:icon="@mipmap/ic_launcher"
修改启动类
-
新建启动类
只需要改个名字即可
-
在AndroidManifest.xml修改
将新建的启动类的内部增加下面代码,然后exported改为true
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
更改后效果如下:
<!-- name的点 缺省的是项目的路径--> <activity android:name=".LoginActivity" android:exported="true" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:exported="true">
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/17168911.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步