相识Android studio 初学者零基础保举(1)

[复制链接]
发表于 2025-4-29 18:27:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
线上学习课程链接
开发Andorid App 利用的语言有很多,包罗java, kotlin,C++,等,起首让我们相识kotlin这个热门语言。
kotlin 步伐

  1. fun main() {
  2.     println("hello,xu")
  3. }
复制代码
kotlin中的函数界说语法:函数名称在fun关键字后面,函数名称遵循驼峰式大小写规范(函数名称中第一个单词全小写后面所有其他单词首字母大写),例如:


  • calculateTip
  • displayErrorMessage
  • takePhoto
在kotlin中每行只有一个语句
{前有一个空格
主体缩进四个空格,请勿利用制表符缩进代码,而应该输入四个空格
}和fun对齐
在kotlin中创建和利用变量


  1. fun main() {
  2.     val count: Int = 2 //注意在声明变量时,如果没有提供初始值就必须声明类型,例如:val count: Int 反之如果提供初始值,可以不声明类型,kotlin可以根据初始值推断类型,例如:val count = 2
  3.     println(count)
  4.     println("wang is $count years old")
  5. }
复制代码

界说kotlin 变量,要以val 关键字开头,与函数名称相似变量名也要以驼峰方式定名,例如:


  • numberOfEmails
  • cityName
  • bookPublicationDate
变量名称后要添加冒号,空格,数据类型。kotlin的数据类型包罗:String、Int、Double、Float, 和 Boolean等,类型一定要首字母大写。
  1. fun main() {
  2.     val numberOfApples = 2
  3.     val numberOfBananas = 3
  4.     println("Total fruit number:${numberOfApples+numberOfBananas}")
  5. }
复制代码
修改变量

val -预计变量不会修改时利用
var-预计变量会修改时利用
留意默认利用val,防止变量在步伐中意外更新,为val赋值后就会保持该值一直稳定。
增量运算符 减量运算符

count++ 等同于 count = count + 1,count-- 等同于 count = count - 1。
其他运算符


在Kotlin代码中添加注释

//注释行
/*注释行*/
总结


在kotlin中创建和利用函数


函数返回值默认为Uint,假如不返回任何值或返回uint的函数,可以不加return。
函数添加形参


每个形参由变量名和数据类型组成。
留意:kotlin的形参是不可变的。
生成具有多个形参的函数


什么是函数签名?函数名和形参属于函数签名。
默认实参


总结



什么是JetPack Compose?

JetPack Compose是用于构建Android界面的新款工具包。借助Compose,可以通过界说一组函数来构建界面,这些函数称为可组合函数,他们会接受数据并描述界面元素。
可组合函数

在compose中,可组合函数是界面的根本构建块。可组合函数:


  • 描述界面中的某一部门。
  • 不会返回任何内容。
  • 接受一些输入并生成屏幕上表现的内容。
注解

注释是用于在代码中附加额外信息的方式。可以帮助Jetpack Compose编译器等工具和其他开发者理解应用的代码。
注解的函数示例:

可组合函数名称利用Pascal定名法则(每个单词首字母大写)

构建根本布局

界说一个描述Text可组合项的可组合函数
  1. @Composable
  2. fun GreetingText(message: String, from:String, modifier: Modifier = Modifier) {
  3.     Text(
  4.         text = message,
  5.         fontSize = 100.sp,
  6.         lineHeight = 110.sp,
  7.         modifier = Modifier.background(color = Color.Green)
  8.     )
  9.     Text(
  10.         text = from,
  11.         fountSize = 20.sp
  12.     )
  13. }
复制代码
text = stringResource(R.string.Jetpack_Compose_tutorial)
怎样让Text按照一列表现?下面我们就要相识到界面层次结构。
层次结构基于包含机制,即一个组件可包含一个大概多个组件,偶然会用父级或子级两个词来表达。如许的说是指父界面元素包含子界面元素,子界面元素还可以继续包含子界面元素,在Android Studio中利用Row,Column,Box可组合项作为父界面元素。
如需在 Row 中设置子元素的位置,请设置 horizontalArrangement 和 verticalAlignment 实参。对于 Column,请设置 verticalArrangement 和 horizontalAlignment 实参。
当 Column 的大小大于其子元素大小的总和时,可以指定 verticalArrangement 来界说 Column 中的子元素的排列方式。下图表现了不同的垂直排列方式:

同样地,当 Row 的大小大于其子元素大小的总和时,可以指定 horizontalArrangement 来界说 Row 中的子元素的排列方式。下图表现了不同的程度排列方式:




Row, Column, Box都是接受可组合项作为参数的可组合函数。
  1. // Don't copy.
  2. Row {
  3.     Text("First Column")
  4.     Text("Second Column")
  5. }//注意这里使用的是{}而不是()这是一种Compose推荐的写法(lamda表达式了解即可)
复制代码

  1. @Composable
  2. fun GreetingText(message: String, from:String, modifier: Modifier = Modifier) {
  3.     Column(
  4.         VerticalArrangement = Arrangement.Center
  5.         ){
  6.         Text(
  7.             text = message,
  8.             fontSize = 100.sp,
  9.             lineHeight = 110.sp
  10.         )
  11.         Text(
  12.             text = from,
  13.             fountSize = 20.sp,
  14.             fontWeight = FontWeight.Bold
  15.         )
  16.     }
  17. }
复制代码
  1. import androidx.compose.foundation.layout.Column
复制代码
如需在屏幕中对齐问候语:在Column中添加 VerticalArrangement = Arrangement.Center
围绕列添加内边距:在Column中添加modifier = Modifier.padding(8.dp)
Text居中:
  1. Text(
  2.     text = message,
  3.     fontSize = 16.sp,
  4.     textAlign = TextAlign.Center
  5. )
复制代码
Text 配置内边距,并利用右对其:
  1. Text(
  2.     text = from,
  3.     fontSize = 8.sp,
  4.     modifier = Modifier
  5.             .padding(8.dp)
  6.             .algin(alginment = Alignment.end)
  7. )
复制代码
总结

         

Image可组合项

怎样添加图片到项目中?
1.起首,下载图片。
2.其次,在 Android Studio 中,依次点击 View > Tool Windows > Resource Manager,或点击 Project 窗口旁边的 Resource Manager 标签页。


3.依次点击 + (Add resources to the module) > Import Drawables。

4.在文件浏览器中,选择已下载的图片文件,然后点击 Open。
此操作会打开 Import drawables 对话框。

5.Android Studio 会向您表现该图片的预览。从 QUALIFIER TYPE 下拉列表中选择 Density。后面会介绍为何要实验此操作。

6.从 VALUE 列表中选择 No Density。

7.点击下一步。
8.Android Studio 会表现将在此中放置图片的文件夹结构。请留意 drawable-nodpi 文件夹。
9.点击 Import(C)。
Android Studio 会创建一个 drawable-nodpi 文件夹,并将您的图片放在此中。在 Android Studio 的“Project”视图中,资源名称会表现为 androidparty.png (nodpi)。在计算机文件系统中,Android Studio 会创建一个名为 drawable-nodpi 的文件夹。

假如图片导入成功,Android Studio 就会将此图片添加到 Drawable 标签页下的列表中。此列表包含该应用的所有图片和图标。现在,您就可以在应用中利用这张图片了。

10.依次点击 View > Tool Windows > Project,或点击最左侧的 Project 标签页,切换回“Project”视图。
11.依次点击 app > res > drawable,确认图片位于 drawable 文件夹中。

  1. val image = painterResource(R.drawable.androidparty)
  2. Image(
  3.     painter = image,
  4.     contentDescription = null
  5. )
复制代码
怎样将Image 和 GreetingText重叠表现? 利用Box 可以实现,Box可以将元素重叠在一起。

  1. @Composable
  2. fun GreetingImage(message: String, from: String, modifier: Modifier = Modifier) {
  3.     val image = painterResource(R.drawable.androidparty)
  4.     Box(modifier) {
  5.         Image(
  6.             painter = image,
  7.             contentDescription = null,
  8.             modifier = Modifier
  9.                 .background(Color(0xFF030B3B))
  10.                 .width(150.dp)
  11.                 .height(150.dp)
  12.         )
  13.         GreetingText(
  14.             message = message,
  15.             from = from,
  16.             modifier = Modifier
  17.                 .fillMaxSize()
  18.                 .padding(8.dp)
  19.         )
  20.     }
  21. }
复制代码
androidx.compose.foundation.layout.Box
怎样全屏表现图片?利用 ContentScale.Crop 形参进行缩放时,系统会匀称缩放图片以保持宽高比稳定,进而使图片的宽度和高度等于或大于屏幕的相应尺寸。
  1. Image(
  2.     painter = image,
  3.     contentDescription = null,
  4.     contentScale = ContentScale.Crop
  5.     alpha = 0.5F
  6. )
复制代码
androidx.compose.ui.layout.ContentScale
Icon 可组合项

  1. @Composable
  2. fun Part2() {
  3.     val myAppIcons = Icons.Rounded.Phone
  4.     Column{
  5.         Row {
  6.             Icon(myAppIcons,
  7.                 contentDescription = null,
  8.                 tint = Color(0xFF3ddc84))
  9.             Text(
  10.                 text = "+86 13900000000",
  11.                 modifier = Modifier
  12.                     .padding(start = 8.dp)
  13.             )
  14.         }
  15.         Row {
  16.             Icon(Icons.Rounded.Home,
  17.                 contentDescription = "Localized description",
  18.                 tint = Color(0xFF3ddc84)
  19.             )
  20.             Text(
  21.                 text = "Jilin",
  22.                 modifier = Modifier
  23.                     .padding(start = 8.dp)
  24.             )
  25.         }
  26.         Row {
  27.             Icon(Icons.Rounded.Email,
  28.                 contentDescription = "Localized description",
  29.                 tint = Color(0xFF3ddc84))
  30.             Text(
  31.                 text = "[email protected]",
  32.                 modifier = Modifier
  33.                     .padding(start = 8.dp)
  34.             )
  35.         }
  36.     }
  37. }
复制代码
Column象限

  1. @Composable
  2. fun QuadrantFour() {
  3.     Column(Modifier.fillMaxWidth()) {
  4.         Row(Modifier.weight(1f)) {
  5.             Quadrant(modifier = Modifier.weight(1f), color = Color(0xFFEADDFF))
  6.             Quadrant(modifier = Modifier.weight(1f), color = Color(0xFFD0BCFF))
  7.         }
  8.         Row(Modifier.weight(1f)) {
  9.             Quadrant(modifier = Modifier.weight(1f),color = Color(0xFFB69DF8))
  10.             Quadrant(modifier = Modifier.weight(1f),color = Color(0xFFF6EDFF))
  11.         }
  12.     }
  13. }
复制代码
String资源

  1. @Composable
  2. fun Greeting(modifier: Modifier = Modifier) {
  3.     val image = painterResource(R.drawable.bg_compose_background)
  4.     Column {
  5.         Image(
  6.             painter = image,
  7.             contentDescription = null
  8.         )
  9.         Text(
  10.             text = stringResource(R.string.Jetpack_Compose_tutorial),
  11.             modifier = Modifier.padding(16.dp),
  12.             fontSize = 30.sp
  13.         )
  14.         Text(
  15.             text = stringResource(R.string.a1),
  16.             modifier = Modifier.padding(start = 16.dp, end = 16.dp),
  17.             fontSize = 15.sp
  18.         )
  19.         Text(
  20.             text = stringResource(R.string.a2),
  21.             modifier = Modifier.padding(16.dp),
  22.             fontSize = 15.sp
  23.         )
  24.     }
  25. }
复制代码



































回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表