码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Android基础第三天 | 字节跳动第四届青训营笔记


    这是我参与「第四届青训营 」笔记创作活动的的第3天

    文章目录

      • 常规 & 高级UI编程
        • 课程回顾 → 四大组件
        • 01. Android UI组件
          • 1.1 常规UI组件
          • 1.2 常规UI组件的属性和方法
          • 1.3 常规UI组件的使用
          • 1.4 高级UI组件
          • 1.5 UI组件关系
          • 1.6 UI示例和总结
        • 02. 布局
          • 2.1 LinearLayout
          • 2.1.1 LinearLayout示例
          • 2.2 RelativeLayout
            • 2.2.1 RelativeLayout示例
          • 2.3 FrameLayout
            • 2.3.1 FrameLayout示例
          • 2.4 ConstraintLayout
            • 2.4.1 ConstraintLayout示例
          • 2.5 布局总结(常用)
        • 03. 渲染
          • 3.1 布局加载
            • 3.1.1 布局加载-setContentView
            • 3.1.2 布局解析-LayoutInflater
            • 3.1.3 布局解析-createView
            • 3.1.4 布局解析小结
            • 3.1.5 页面绘制起点
            • 3.1.6 View绘制流程
            • 3.1.7 页面绘制流程
            • 3.1.8 Vsync信号
          • 3.2 UI渲染
          • 3.3 渲染总结
        • 04. 交互
          • 4.1 获取View实例——findViewById
          • 4.2 常用交互事件监听器
          • 4.3 屏幕触摸事件
          • 4.4 触摸事件——MotionEvent
          • 4.5 捕获触摸事件
          • 4.6 触摸事件分发
          • 4.7 事件处理流程
          • 4.8 View的事件响应
          • 4.9 交互总结
        • 05.动画
          • 5.1 常见动画类型
          • 5.2 帧动画
            • 5.2.1 帧动画示例
          • 5.3 补间动画
            • 5.3.1 补间动画示例
          • 5.4 插值器
          • 5.5 View动画小结
          • 5.6 属性动画
            • 5.6.1 属性动画示例
          • 5.7 动画总结
        • 06. 自定义UI
          • 6.1 自定义View示例
            • 6.1.1 自定义View示例——创建View
            • 6.1.2 自定义View示例——处理View布局
            • 6.1.3 自定义View示例——绘制View
            • 6.1.4 自定义View示例——处理用户交互
            • 6.1.5 自定义View示例——处理动画
          • 6.2 自定义View小结
        • 07 今日总结

    常规 & 高级UI编程

    课程回顾 → 四大组件

    01. Android UI组件

    在这里插入图片描述

    • UI: User Interface
    • 图形用户界面
    • UI界面由多个不同功能的UI组件构成
    • Android SDK提供了大量的UI组件

    1.1 常规UI组件

    在这里插入图片描述

    常规UI组件大多由Android Framework中的android.widget这个package提供

    1.2 常规UI组件的属性和方法

    在这里插入图片描述

    1.3 常规UI组件的使用

    在这里插入图片描述

    1.4 高级UI组件

    在这里插入图片描述

    常规UI组件大多是View,高级UI组件大多是ViewGroup、比常规UI组件有多的功能。

    1.5 UI组件关系

    在这里插入图片描述

    View和ViewGroup的关系

    在这里插入图片描述

    1.6 UI示例和总结

    在这里插入图片描述

    02. 布局

    在这里插入图片描述

    2.1 LinearLayout

    线性布局

    在这里插入图片描述

    2.1.1 LinearLayout示例

    在这里插入图片描述

    weight:权重。

    2.2 RelativeLayout

    相对布局

    在这里插入图片描述

    2.2.1 RelativeLayout示例

    在这里插入图片描述

    2.3 FrameLayout

    层级布局

    在这里插入图片描述

    2.3.1 FrameLayout示例

    在这里插入图片描述

    2.4 ConstraintLayout

    约束布局

    在这里插入图片描述

    2.4.1 ConstraintLayout示例

    在这里插入图片描述

    约束布局打破 height为0

    2.5 布局总结(常用)

    在这里插入图片描述

    03. 渲染

    在这里插入图片描述

    3.1 布局加载

    (1)编写布局文件 → (2)注册Manifest → (3)设置布局文件

    在这里插入图片描述

    3.1.1 布局加载-setContentView

    在这里插入图片描述

    3.1.2 布局解析-LayoutInflater

    在这里插入图片描述

    3.1.3 布局解析-createView

    在这里插入图片描述

    3.1.4 布局解析小结

    在这里插入图片描述

    3.1.5 页面绘制起点

    在这里插入图片描述

    3.1.6 View绘制流程

    在这里插入图片描述

    3.1.7 页面绘制流程

    在这里插入图片描述

    3.1.8 Vsync信号

    在这里插入图片描述

    3.2 UI渲染

    在这里插入图片描述

    3.3 渲染总结

    在这里插入图片描述

    04. 交互

    举个栗子

    在这里插入图片描述

    4.1 获取View实例——findViewById

    在这里插入图片描述

    在这里插入图片描述

    4.2 常用交互事件监听器

    在这里插入图片描述

    4.3 屏幕触摸事件

    在这里插入图片描述

    所有的交互事件都来自于对屏幕触摸信号的处理,View.OnClickListener()等常用点击事件是对交互事件的二次封装。

    4.4 触摸事件——MotionEvent

    在这里插入图片描述

    当用户触摸屏幕时,系统将建立一系列的MotionEvent对象,MotionEvent包含关于发生触摸的位置和时间等细节信息,MotionEvent对象被传递到相应的捕获函数中,例如onTouchEvent)。

    4.5 捕获触摸事件

    在这里插入图片描述

    4.6 触摸事件分发

    在这里插入图片描述

    4.7 事件处理流程

    在这里插入图片描述

    4.8 View的事件响应

    在这里插入图片描述

    4.9 交互总结

    在这里插入图片描述

    05.动画

    5.1 常见动画类型

    在这里插入图片描述

    5.2 帧动画

    在这里插入图片描述

    5.2.1 帧动画示例

    在这里插入图片描述

    5.3 补间动画

    在这里插入图片描述

    5.3.1 补间动画示例

    在这里插入图片描述

    【是否匀速取决于插值器】

    5.4 插值器

    【生成动画的中间状态】

    在这里插入图片描述

    5.5 View动画小结

    在这里插入图片描述

    5.6 属性动画

    在这里插入图片描述

    5.6.1 属性动画示例

    在这里插入图片描述

    5.7 动画总结

    在这里插入图片描述

    视图动画和属性动画根本区别:是否改变了动画本身的属性

    • 视图动画:不改变动画的属性,在动画过程中仅对图像进行变换来达到动画效果。无论动画结果在哪,该View的位置和响应区域都是在原地,不会根据结果而移动;
    • 属性动画:改变了动画属性因属性动画在动画过程中对动态改变了对象属性,从而达到了动画效果

    06. 自定义UI

    6.1 自定义View示例

    在这里插入图片描述

    6.1.1 自定义View示例——创建View

    在这里插入图片描述

    6.1.2 自定义View示例——处理View布局

    在这里插入图片描述

    6.1.3 自定义View示例——绘制View

    在这里插入图片描述

    6.1.4 自定义View示例——处理用户交互

    在这里插入图片描述

    6.1.5 自定义View示例——处理动画

    在这里插入图片描述

    6.2 自定义View小结

    在这里插入图片描述

    07 今日总结

    在这里插入图片描述

  • 相关阅读:
    【Java】Collection接口&迭代器
    Java架构师学习路线
    Openharmony3.2 源码编译(ubuntu 22.04) 过程记录
    记一次 .NET 差旅管理后台 CPU 爆高分析
    Kubernetes Pod 排错指南
    Mac 配置CocoaPods
    浅谈对属性描述符__get__、__set__、__delete__的理解
    pip 如何设置代理
    python 基于aiohttp的异步爬虫实战
    修改原生checkbox的样式
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126052820
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号