
Android学习笔记
那棵树生气了_么
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Flutter学习笔记
1、添加环境变量:export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn2、Dart语言简单学习:1.变量的声明var:会根据第一次赋值判断数据类型,编译结束后变量的类型已经确定dynamic:声明的变量可以在后期改变赋值类型,会提供所有可能的组合Object:任何对象都可以赋值给Object对象,但是只能使用O..原创 2020-07-22 22:56:02 · 367 阅读 · 0 评论 -
Kotlin协程的学习笔记
1、什么是协程:协程的理解和线程有点类似,可以简单的理解为轻量级的线程。线程需要依靠操作系统的调度才能实现不同线程之间的转换,而协程却可以的编程语言的层面实现不同协程之间的转换。协程允许我们在单线程模式下模拟多线程的编程效果,代码的挂起和恢复都是由编程语言自行控制。developers:协程是一种并发设计模式,您可以在 Android 平台上使用它来简化异步执行的代码。协程是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念。2、功能:(来自developers)与原创 2020-07-11 17:24:02 · 577 阅读 · 0 评论 -
Java泛型探索
1.关于泛型擦除public class ErasedType { public static void main(String[] args) { Class c1 = new ArrayList<Integer>().getClass(); Class c2 = new ArrayList<String>().getClass(); System.out.println(c1 == c2); }}上面代码原创 2020-06-28 22:59:29 · 165 阅读 · 0 评论 -
Jetpack的学习
一、ViewModelViewModel的一个重要作用就是帮助Activity分担一部分的工作,专门存放关于界面相关的数据。只要界面上能看到的数据,都应该存放到ViewModel中。另外一个很重要的特性就是当手机屏幕发生旋转时不会被重新创建,只有当acitivity被退出是跟着一起销毁。1.基本用法一般每一个Activity和Fragment都会创建一个对应的ViewModel。下面是一个简单的计数器的例子:1.导包:implementation 'androidx.lifecycl原创 2020-06-15 14:56:37 · 360 阅读 · 0 评论 -
Service学习笔记
1.生命周期四个手动调用的方法 手动调用的方法 作用 startService( ) 启动服务 stopService( ) 关闭服务 bindService( ) 绑定服务 unbindService( ) 解绑服务 五个内部自动调用的方法 内部自动调用的方法 作用 onCreat( ) 创建服务 onSt...原创 2018-06-12 21:17:05 · 237 阅读 · 0 评论 -
Activity和Fragment的生命周期
1.活动的生命周期Android类中定义了七个回调方法分别是:1. onCreate( ) 活动第一次创建时调用,在这个方法中进行初始化操作。2. onStart( ) 这个实在活动又不可见到可见的时候调用。3. onResume( ) 在活动准备好和用户交互的时候调用,此时活动已经位于返回栈的顶端,并且处于运行状态。4. onPause( ) 系统准备去启动另一个或者恢复另一...原创 2018-06-13 21:37:40 · 1164 阅读 · 0 评论 -
Android 新建工程上传代码报错
1.Can't Update No tracked branch configured for branch master or the branch doesn't exist. To make your branch track a remote branch call, for example, git branch -...原创 2018-07-19 16:24:35 · 198 阅读 · 0 评论 -
Android自定义组件(一)
1.Activity 的组成结构Activity代表一个窗口,其本质上是一个PhoneWindow对象,其负责窗口的管理,其负责的DecorView负责界面的效果。DecorView类是FrameLayout的子类,是整个View的根。各组件之间的关系如下图所示:(1)Activity负责整个容器的生命周期以及活动,窗口通过window来管理(2)窗口的绘制以及渲染交给DecorV...原创 2018-10-12 15:37:51 · 548 阅读 · 0 评论 -
Android自定义组件(二)
1.使用Graphics2D实现动态效果(1)invalidate()方法用于重绘组件:public void invalidate()public void invalidate(int l, int t, int r, int b)public void invalidate(Rect dirty)其中,不带参数表示重绘整个区域,带参数表示重绘指定的区域。简单来讲,View的i...原创 2018-10-13 11:28:39 · 389 阅读 · 0 评论 -
Android自定义组件(三)
1.聊一聊双缓存技术为什么叫“双缓存”,其实就是有两个绘图区,一个是Bitmap的Canvas,另一个则是当前View的Canvas。使用双缓存的意义:1)提高绘图的性能2)可以在屏幕上展示绘图的过程3)保存绘图历史(1)下面是使用双缓存来绘制图形的代码 private Paint paint; /** * 上一个点的坐标 */ ...原创 2018-10-13 16:17:57 · 145 阅读 · 0 评论 -
Android自定义组件(四)
1.阴影阴影即可以为文字和图形指定阴影,默认情况下,我们的文字和图形都是绘制在主层(main layer)上,我们也可以将内容绘制到新的layer上,实际上阴影就是在main layer的下面添加了一个阴影层。Paint类为此定义了一个名为setShadowLayer的方法:public void setShadowLayer(float radius, float dx, floa...原创 2018-10-14 15:24:16 · 168 阅读 · 0 评论 -
Android自定义组件(五)
1.组件的属性自定义的组件继承自View后就会具备若干的默认属性。除了View 的默认属性之外、我们也可以为组件自定义属性,自定义属性应遵循以下步骤:1)在 res/values/attrs.xml 文件中为指定组件定义 declare-styleable 标记, 并将所有的属性都定义在该标记中;(若没有,自行创建)2)在 layout 文件中使用自定义属性;3)在组件类的构造...原创 2018-10-14 18:57:35 · 1628 阅读 · 0 评论 -
【转】ListView中的BaseAdapter
本文转自:http://blog.youkuaiyun.com/tianshuguang/article/details/7344315重写ListVIew的BaseAdapter需要重写一下四个方法:getCount()、getItem(int position)、getItemId(int position)以及getView(),其中最重要的是getView()方法。 @Overrid...转载 2018-06-13 20:59:37 · 189 阅读 · 0 评论