Android(安卓)开发零基础入门课程【笔记】

此文章是根据B站的视频教程整理总结的笔记,用白话说明一些Android开发的入门知识,共勉。

B站教程链接:https://www.bilibili.com/video/BV13y4y1E7pF?p=12&spm_id_from=pageDriver

视频是基于Java的,我用Kotlin写的源码链接(Topics = "android-bilibili-course"):https://github.com/Flameyjh?tab=repositories

目录

控件介绍

TextView

Button

EditText

ImageView

ProgressBar

Notification

ToolBar

AlertDialog

布局

LinearLayout

RelativeLayout

FrameLayout

TableLayout

GridLayout

ConstraintLayout

ListView

RecyclerView

动画

帧动画

补间动画

属性动画

单位和尺寸

ViewPager

Fragment

ViewPager2

Viewpager2+Fragment实现微信首页

Activity

Service

Receiver

热修复

在项目中使用高德地图

引入高德地图SDK

在项目中显示地图

地图关键字搜索与定位

Glide

OkHttp

Retrofit

GSON

使用Gson完成序列化和反序列化

变量值为NULL时的序列化和反序列化

控制序列化/反序列化的变量名称

控制是否参与序列化/反序列化

RX(ReactiveX)

RX思维下载图片

RX思维的魅力

自定义observer

数据存储

类似“记住用户名”打勾,看书到69页,这种配置信息应该保存到SP中。SQLite和ROOM都是数据库,SQLite是早期原生数据库,ROOM是后期简洁数据库,类似电话簿这种列表信息应该保存到数据库中。

SP

SQLite

ROOM

Intent

Android 多媒体

组件化

项目发布

 

控件介绍

TextView

Button

EditText

输入框里面的内容。继承自TextView,可以设置图片drawable、默认输入提示hint等。

ImageView

图片。

ProgressBar

进度条。

Notification

通知。

ToolBar

页面上方导航栏。可以设置背景、标题、图标等。可以在内部添加TextView使文字居中。

AlertDialog

弹出来的对话框。需要new一个构建器AlertDialog.Builder去设置对话框的内容。可以添加“确认”、“取消”、“中间”等不同类型的按钮。

setView(name_view) 方法可以给对话框添加View,xml布局可以变成View去使用:View view = getLayoutInflater().inflate(R.layout.name_xml, null)。

弹出来的对话框。直接new一个PopupWindow即可。可以设置点击空白处取消或者点击按钮取消。

布局

LinearLayout

线性布局。oritation设置水平、垂直。gravity在父容器中设置,设置子元素整体居中、水平方向居中、垂直方向居中。layout_gravity在子元素中设置,设置它在父容器中的对齐方式。layout_weight设置剩余空间根据权重分配。

RelativeLayout

相对布局。默认放在父容器左上角。根据父容器定位layout_alignParentLeft。根据兄弟组件定位layout_toLeftOf。设置组件与父容器的间距margin。设置组件内部元素的间距padding。

FrameLayout

帧布局。设置前景,设置前景位置。

TableLayout

表格布局。和TableRow结合使用,可以一行一行的显示。设置需要被隐藏的列。设置允许被拉伸、收缩的列。子控件显示在第几列、横向跨几列。

GridLayout

TableLayout不能把两行合并,只能把两列合并。GridLayout既能行合并,也能列合并。

ConstraintLayout

约束布局。约束上下左右。可以通过design界面的拖拽实现约束。可以添加指导线进行更方便的设置。可以直接推导约束。

ListView

  1. 创建一个ListView的布局,创建一个item的布局;
  2. 创建一个List类型的数据,表示每个item的文本内容;
  3. 创建一个继承自BaseAdapter的Adapter,重写getView方法,拿到item布局渲染的convertView,把数据绑定到每一个convertView。
  4. 可以用ViewHolder优化,把item的view元素放到viewHolder里,通过viewHolder去设置和取用这些元素。

RecyclerView

动画

帧动画

通过多张图片替换形成动画。

  1. 设置animation-list类型的xml,作为其他布局的background使用;
  2. 通过布局.getBackground得到AnimationDrawable类型anim。然后通过anim.start()启动动画。

补间动画

通过调整透明度、旋转、缩放、平移形成动画。

  1. 通过加载xml动画设置文件来创建一个Animation对象。Animation animation = AnimationUtils.loadAnimation(context, R.anim.动画设置文件名);
  2. 普通的图片就可以通过开启animation来设置动画。imageView.startAnimation(animation)。

属性动画

ValueAnimator改变值, ObjectAnimator改变对象的属性值。

单位和尺寸

px:像素。绝对单位,默认单位。pt:绝对单位。dp:相对单位。xml中常用,不同设备不同显示效果。sp:相对单位。和dp可以转换,主要用于字体显示。

ViewPager

能够左右滑动的资源位。

  1. 3个子页面的xml布局文件,一个包含ViewPager的xml文件;
  2. 在Activity中把三个子页面的布局渲染成3个view,并添加到一个ArrayList中去,作为数据;
  3. 自定义一个继承自PagerAdapter的myAdapter,在里面绑定数据;
  4. 把viewPager的adapter设置为myAdapter。

Fragment

可以看做小型简单的activity。用于平板电脑界面动态灵活设计,一个布局适配两种设备,简单高效,易于维护。

为什么用fragment而不用两个layout达到效果?两个layout需要判断当前屏幕大小然后转换布局。

特性:具备生命周期,不能独立使用,必须委托在activity中才能运行。一个activity可以有多个fragment,一个fragment也可以在多个activity中重复使用。

使用方法:

  1. 创建一个fragment,就会出现一个Fragment.java和一个对应的fragment.xml;
  2. 在Fragment.java里,把fragment.xml渲染成view,并且给view里面的元素添加监听;
  3. 在其他页面的布局文件,比如main.xml 中去使用上面创建的fragment.java。

fragment动态添加和管理:

使用fragmentManager,fragmentTransaction。

ActivityFragment通信:

  1. 原生方案:Bundle。fragment.setArguments(bundle)。
  2. 类与类通信常用方案:接口作为参数类型传值。具体操作:在F里面new一个空的接口类型的对象作为函数参数,提供一个set函数给外部;然后在B中调用A的set函数,new一个有内容的接口对象赋值给A中空的接口对象(这一步其实就是对接口里面函数的具体实现)。
  3. 上面两种方案需要信息已经提前准备好,但是我们还需要能够即时的通信。其他封装好的方案:eventBus、liveData。这些都是观察者模式。

Fragment生命周期:

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值