📌  相关文章
📜  如何在 Android 中使用 Style 构建 Material 和 Dark 主题应用程序?

📅  最后修改于: 2022-05-13 01:54:28.992000             🧑  作者: Mango

如何在 Android 中使用 Style 构建 Material 和 Dark 主题应用程序?

为了增加安卓应用的用户流量,需要对安卓应用的主题和样式进行调整。在当今的移动应用程序开发中,还需要考虑应用程序的外观和感觉。应用程序用户需要的一项主要功能是黑暗主题。 Android 设备的默认主题在 Android 棒棒糖(5.0)之前是深色的,但 Android Q 于 2019 年第三季度发布。大多数应用程序实现了应用程序的深色主题版本。在本文中,说明了如何实现 Android 应用程序的 Material Dark 主题版本。

为什么是黑暗主题?

深色主题会降低移动设备屏幕发出的亮度,从而减轻眼睛疲劳。同时保持最小的色彩对比度。这也有助于应用程序的功能设计。消耗更少的电池电量,适应当前的光线条件。带有 OLED 显示屏的设备可以适应深色主题。最重要的是,该应用程序的深色主题版本有更多的粉丝。

了解样式和主题之间的区别

  • Android 开发人员见证了样式和主题的模糊性。原因是在 Android 中只有标签名


XML

    
    


XML


  
    
    
  
    
  
        
        
  
        
        
  
        
        
  
        
        
  
        
        
  
        
        
  
        
        
  
        
        
        
  
        
        
  
        
        
  
        
        


Kotlin
package com.aditya.gfgarticle
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.appcompat.app.AppCompatDelegate
import com.google.android.material.switchmaterial.SwitchMaterial
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Instance for the material switch
        val switchMaterial: SwitchMaterial = findViewById(R.id.switchMaterial)
  
        // handle the checked changes for the material switch
        switchMaterial.setOnCheckedChangeListener { buttonView, isChecked ->
            when (isChecked) {
                // if checked toggle to dark mode
                true -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
  
                // if unchecked toggle back to light mode
                false -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
            }
        }
    }
}


步骤 4:使用 themes.xml 文件

  • 首先,将 DayNight DarkActionBar 主题应用到应用程序的浅色主题和深色主题,如下所示:

XML


    
    



步骤 5:使用 activity_main.xml 文件

  • 应用程序的主要布局由 Material Design Type 系统组成。和一个扩展浮动操作按钮和一个普通浮动操作按钮来展示应用程序的辅助品牌颜色。
  • 布局中的所有文本视图都继承了 Material 类型系统的样式。例如 – “style=”@style/TextAppearance.MaterialComponents.Headline4”。

XML



  
    
    
  
    
  
        
        
  
        
        
  
        
        
  
        
        
  
        
        
  
        
        
  
        
        
  
        
        
        
  
        
        
  
        
        
  
        
        

输出界面:

步骤 6:使用 MainActivity.kt 文件

在 MainActivity.kt 文件中,已经处理了材质切换按钮的检查更改侦听器。如果设备不支持应用程序的深色主题,则该项目本身支持各种 API 的深色主题版本。

科特林

package com.aditya.gfgarticle
  
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.appcompat.app.AppCompatDelegate
import com.google.android.material.switchmaterial.SwitchMaterial
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Instance for the material switch
        val switchMaterial: SwitchMaterial = findViewById(R.id.switchMaterial)
  
        // handle the checked changes for the material switch
        switchMaterial.setOnCheckedChangeListener { buttonView, isChecked ->
            when (isChecked) {
                // if checked toggle to dark mode
                true -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
  
                // if unchecked toggle back to light mode
                false -> AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
            }
        }
    }
}

输出:

想要一个更快节奏和更具竞争力的环境来学习 Android 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!