• Android学习笔记 76. 支持库


    Android学习笔记

    Android 开发者基础知识 (Java) —— Google Developers 培训团队

    第1单元 入门

    第3课 测试、调试和使用支持库

    76. 支持库

    你会做什么
    • TextView用一个和一个创建一个新的应用程序Button
    • 验证 Android 支持存储库(包含 Android 支持库)在您的 Android Studio 安装中可用。
    • 探索build.gradle您的应用项目的文件。
    • 管理您的应用支持的 Android 版本不可用的类或方法调用。
    • 使用支持库中的兼容性类为您的应用提供向后兼容性。
    76.1 设置项目以使用支持库
    1. 验证Android支持存储库是否可用

      Android 支持库作为 Android SDK 的一部分下载,可在 Android SDK 管理器中使用。在 Android Studio 中,您将使用 Android Support Repository(支持库的本地存储库)来从 Gradle 构建文件中访问这些库。

      在这里插入图片描述

      这里发现已经和课程不一样了

      谷歌一下

      因为Androidx已经放弃使用support包了。

      下载也被一并砍掉了。啊这

      罢了,我直接跳过

    2. 设置项目并检查构建

      在这里插入图片描述

      那我就16了

      探索构建

      build.gradle对于整个项目 ( build.gradle (Project: helpcompat)) 与 app 模块的文件不同build.gradle。在build.gradle (Module: app)文件中。

      在这里插入图片描述

      compileSdkVersion 26
      
      • 1

      编译版本是您的应用在 Android Studio 中编译时使用的 Android 框架版本。对于新项目,编译版本是您安装的最新框架 API 集。如果您使用较旧或较新的 API,此值影响Android Studio 本身以及您在 Android Studio 中收到的警告或错误。

      minSdkVersion 15
      
      • 1

      最低版本是您的应用运行时使用的最旧的 Android API 版本。它与您在创建项目时在步骤 1 中选择的数字相同。Google Play 商店使用此编号来确保您的应用可以在给定用户的设备上运行。Android Studio 也使用这个数字来警告您使用已弃用的 API。

      targetSdkVersion 26
      
      • 1

      目标版本表示您的应用程序设计和测试的 API 版本。如果 Android 平台的 API 高于此数字(即您的应用在较新的设备上运行),该平台可能会启用兼容性行为以确保您的应用继续按照设计的方式运行。例如,Android 6.0 (API 23) 提供了一个新的运行时权限模型。如果您的应用程序以较低的 API 级别为目标,则平台会回退到较旧的安装时权限模型。

      尽管目标 SDK 可以与编译 SDK 的编号相同,但它通常是一个较小的数字,表示您测试过您的应用程序的 API 的最新版本。

      dependencies:

      在这里插入图片描述

      其实已经没用support了

    76.2 实现布局和MainActivity
    1. 更改布局和颜色

      设置颜色

      
      <resources>
          <color name="purple_200">#FFBB86FCcolor>
          <color name="purple_500">#FF6200EEcolor>
          <color name="purple_700">#FF3700B3color>
          <color name="teal_200">#FF03DAC5color>
          <color name="teal_700">#FF018786color>
          <color name="black">#FF000000color>
          <color name="white">#FFFFFFFFcolor>
      
      
          <color name="red">#F44336color>
          <color name="pink">#E91E63color>
          <color name="purple">#9C27B0color>
          <color name="deep_purple">#673AB7color>
          <color name="indigo">#3F51B5color>
          <color name="blue">#2196F3color>
          <color name="light_blue">#03A9F4color>
          <color name="cyan">#00BCD4color>
          <color name="teal">#009688color>
          <color name="green">#4CAF50color>
          <color name="light_green">#8BC34Acolor>
          <color name="lime">#CDDC39color>
          <color name="yellow">#FFEB3Bcolor>
          <color name="amber">#FFC107color>
          <color name="orange">#FF9800color>
          <color name="deep_orange">#FF5722color>
          <color name="brown">#795548color>
          <color name="grey">#9E9E9Ecolor>
          <color name="blue_grey">#607D8Bcolor>
      
      resources>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32

      布局

      
      <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          tools:context=".MainActivity">
      
          <TextView
              android:id="@+id/hello_textview"
              android:textStyle="bold"
              android:textAlignment="center"
              android:textSize="100sp"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Hello World!"
              android:layout_marginTop="8dp"
              app:layout_constraintEnd_toEndOf="parent"
              app:layout_constraintStart_toStartOf="parent"
              app:layout_constraintTop_toTopOf="parent" />
      
          <Button
              android:onClick="changeColor"
              android:id="@+id/color_button"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Change Color"
              app:layout_constraintBottom_toBottomOf="parent"
              app:layout_constraintEnd_toEndOf="parent"
              app:layout_constraintHorizontal_bias="0.498"
              app:layout_constraintStart_toStartOf="parent" />
      
      androidx.constraintlayout.widget.ConstraintLayout>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
    2. MainActivity添加行为

      package com.dingjiaxiong.hellocompat;
      
      import androidx.annotation.NonNull;
      import androidx.appcompat.app.AppCompatActivity;
      
      import android.os.Bundle;
      import android.view.View;
      import android.widget.TextView;
      
      public class MainActivity extends AppCompatActivity {
      
          private TextView mHelloTextView;
          private String[] mColorArray = {"red", "pink", "purple", "deep_purple",
                  "indigo", "blue", "light_blue", "cyan", "teal", "green",
                  "light_green", "lime", "yellow", "amber", "orange", "deep_orange",
                  "brown", "grey", "blue_grey", "black" };
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
      
              mHelloTextView = findViewById(R.id.hello_textview);
              if (savedInstanceState != null) {
                  mHelloTextView.setTextColor(savedInstanceState.getInt("color"));
              }
          }
      
          @Override
          protected void onSaveInstanceState(@NonNull Bundle outState) {
              super.onSaveInstanceState(outState);
              outState.putInt("color", mHelloTextView.getCurrentTextColor());
          }
      
          public void changeColor(View view) {
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
    76.3 实现按钮点击事件
    1. 添加changeButton( ) 点击处理程序

    2. 实现点击事件

      public void changeColor(View view) {
          Random random = new Random();
          String colorName = mColorArray[random.nextInt(20)];
          int colorResourceName = getResources().getIdentifier(colorName, "color", getApplicationContext().getPackageName());
          int colorRes = ContextCompat.getColor(this, colorResourceName);
          mHelloTextView.setTextColor(colorRes);
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    3. 运行

      在这里插入图片描述

    76.4 小结

    安装 Android 支持库:

    • 使用 SDK 管理器安装 Android 支持存储库。选择Tools > Android > SDK Manager,单击SDK Tools选项卡,然后展开Support Repository
    • 如果Android Support Repository的 Status 列中出现Installed,请单击Cancel;如果出现未安装更新可用,请单击复选框。复选框旁边应该会出现一个下载图标。单击确定。

    Android 使用三个指令来指示您的应用在不同 API 版本下的行为方式:

    • minSdkVersion:您的应用支持的最低 API 版本。
    • compileSdkVersion:您的应用程序应使用的 API 版本进行编译。
    • targetSdkVersion:您的应用程序设计的 API 版本。

    要管理项目中的依赖项:

    • Project > Android窗格中展开Gradle Scripts,然后打开**build.gradle (Module: app)**文件。
    • 您可以在该部分中添加依赖项dependencies

    该类ContextCompat提供了与新旧 API 级别的上下文和资源相关方法兼容的方法。

  • 相关阅读:
    PTA作业笔记——简单的计算
    Windows环境部署ZLMediaKit,支持WebRTC
    nginx安装及使用(详细版)
    Mesh绘制五角星和简易特效
    微信小程序发货信息录入
    【云原生】无VIP稳定性和可扩展性更强的k8s高可用方案讲解与实战操作
    数据结构学习系列之单向链表的清空与销毁
    【算法练习Day22】 组合总和&&组合总和 II&&分割回文串
    Embedding 模型部署及效果评测
    CRM客户关系管理系统开发源码小程序
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126378022