在Web开发中,我看到标签如何在浏览器中定义默认主题,以及它们是如何应用的.

然而,对于Android工作室的主题,我真的很困惑.我可以使用?attr/myClass定义我的自定义主题,然后将其应用到android:theme="?attr/yClass"的小部件上,然后在我的白天或夜晚主题文件中为该属性分配 colored颜色 .

但是,让我困惑的是--那紫色.它是从哪里来的?当我将主题标题设置为

<style name="Theme.TestingThemes" parent="Theme.MaterialComponents.DayNight.NoActionBar">

紫色是为not night模式而来.

  • 当我使用Android Studio "default"附带的其他样式时,我看不到完全是紫色的.

  • 有些主题允许我设置自己的 colored颜色 ,但另一些主题不允许,比如我提到的那个.

  • 102当我在app/res/values/themes/*app/res/values/colors.xml*中打开主题文件时,我只看到定义了不到10个主题.103我看到Android工作室向我推荐了long个 colored颜色 名称列表!这些是从哪里来的?

我正面临着我的第一个移动开发任务,真的很沮丧.我只用vim作为我的文本编辑器.我在安卓演播室里快要淹死了.它很酷,功能也很强大,但我需要一些遛娃的助手.求救.

推荐答案

在Android Studio中创建的默认新项目在项目(res/values/colors.xml)中提供了colors.xml资源,其中定义了您描述的purple_500purple_700.

你看到的任何其他 colored颜色 和主题不在你自己的项目文件中,都在AppCompat和material 组件库中(在默认的新项目中定义为项目依赖项),或者它们内置在Android本身中.

在Android Studio左侧的项目面板中,如果展开外部库,您可以看到为项目导入的所有代码库都是作为依赖项导入的(这些代码库在app/build.gradle中定义,并自动从Web下载).这些从属关系包括AppCompat和可能的material 组件库,其中包含它们自己提供的资源.

您不能修改库的内容.您可以通过扩展(创建子样式和主题)进行定制.

如果您想要查看在Android Studio中定义引用的位置(使用XML或其他语言,如Kotlin和Java),您可以按住Ctrl键并单击,它将跳到在任何文件中定义它的行上.

Android相关问答推荐

在Kotlin Jetpack Compose中点击按钮后启动另一个Android应用程序

Android Compose Pages 3-一次加载所有页面,无需在LazyColumn中滚动,无需网络调用和内部滚动

如何更新Kotlin中的显示?

在以XML格式设置完整屏幕视图时可见App Compat按钮

我正在创建一个简单的连接四个游戏,我需要一个弹出式窗口当你赢了

Kotlin - 在继续之前如何等待这个协程完成?

如何将DrawableId参数传递给XML布局?

为什么我收到这个错误我需要安装 android studio

运行设备选项卡在 Android Studio 中自动打开

在 Material 3 TopAppBar 代码的哪个位置定义了填充?

从 HiltViewModel @Injection 访问 Application()

Jetpack Compose:如何绘制异形边框?

在Android RoomDB中使用Kotlin Flow和删除数据时如何解决错误?

Android:ActivityCompat.requestPermissions 不显示弹窗(Android 13,targetSdkVersion=33)

Jetpack Compose Arc 进度条动画(如何重启动画)

Android Studio 错误要求依赖它的库和应用程序针对 Android API 的 33 版或更高版本进行编译.

如何在 Compose 中更改高程 colored颜色 ?

如何使用文件提供程序将视频从一个应用程序共享到另一个应用程序?

Android全屏AlertDialog

在 Android 10 (API 29) 中隐藏状态栏并在应用程序中使用其空间