自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 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 338

原创 Kotlin协程的学习笔记

1、什么是协程:协程的理解和线程有点类似,可以简单的理解为轻量级的线程。线程需要依靠操作系统的调度才能实现不同线程之间的转换,而协程却可以的编程语言的层面实现不同协程之间的转换。协程允许我们在单线程模式下模拟多线程的编程效果,代码的挂起和恢复都是由编程语言自行控制。developers:协程是一种并发设计模式,您可以在 Android 平台上使用它来简化异步执行的代码。协程是在版本 1.3 中添加到 Kotlin 的,它基于来自其他语言的既定概念。2、功能:(来自developers)与

2020-07-11 17:24:02 549

原创 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 143

原创 AS上传Library到JCenter

1.使用AS新创建一个项目2.右键点击项目名add moudle选择Android library3.完成librariy部分代码的编写4.https://bintray.com/官网注册个人用户账号5.添加RepositoryName 和Description根据自己情况填写6.之后进入自己的Repository添加package注意package name稍后会用到7.完成上面的操作之后回到AS在library的build.gradle中添

2020-06-26 16:02:45 211

原创 Jetpack的学习

一、ViewModelViewModel的一个重要作用就是帮助Activity分担一部分的工作,专门存放关于界面相关的数据。只要界面上能看到的数据,都应该存放到ViewModel中。另外一个很重要的特性就是当手机屏幕发生旋转时不会被重新创建,只有当acitivity被退出是跟着一起销毁。1.基本用法一般每一个Activity和Fragment都会创建一个对应的ViewModel。下面是一个简单的计数器的例子:1.导包:implementation 'androidx.lifecycl

2020-06-15 14:56:37 328

原创 Android自定义组件(五)

1.组件的属性自定义的组件继承自View后就会具备若干的默认属性。除了View 的默认属性之外、我们也可以为组件自定义属性,自定义属性应遵循以下步骤:1)在 res/values/attrs.xml 文件中为指定组件定义 declare-styleable 标记, 并将所有的属性都定义在该标记中;(若没有,自行创建)2)在 layout 文件中使用自定义属性;3)在组件类的构造...

2018-10-14 18:57:35 1585

原创 Android自定义组件(四)

1.阴影阴影即可以为文字和图形指定阴影,默认情况下,我们的文字和图形都是绘制在主层(main layer)上,我们也可以将内容绘制到新的layer上,实际上阴影就是在main layer的下面添加了一个阴影层。Paint类为此定义了一个名为setShadowLayer的方法:public void setShadowLayer(float radius, float dx, floa...

2018-10-14 15:24:16 157

原创 Android自定义组件(三)

1.聊一聊双缓存技术为什么叫“双缓存”,其实就是有两个绘图区,一个是Bitmap的Canvas,另一个则是当前View的Canvas。使用双缓存的意义:1)提高绘图的性能2)可以在屏幕上展示绘图的过程3)保存绘图历史(1)下面是使用双缓存来绘制图形的代码 private Paint paint; /** * 上一个点的坐标 */ ...

2018-10-13 16:17:57 129

原创 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 360

原创 Android自定义组件(一)

1.Activity 的组成结构Activity代表一个窗口,其本质上是一个PhoneWindow对象,其负责窗口的管理,其负责的DecorView负责界面的效果。DecorView类是FrameLayout的子类,是整个View的根。各组件之间的关系如下图所示:(1)Activity负责整个容器的生命周期以及活动,窗口通过window来管理(2)窗口的绘制以及渲染交给DecorV...

2018-10-12 15:37:51 525

原创 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 178

原创 Activity和Fragment的生命周期

1.活动的生命周期Android类中定义了七个回调方法分别是:1. onCreate( ) 活动第一次创建时调用,在这个方法中进行初始化操作。2. onStart( ) 这个实在活动又不可见到可见的时候调用。3. onResume( ) 在活动准备好和用户交互的时候调用,此时活动已经位于返回栈的顶端,并且处于运行状态。4. onPause( ) 系统准备去启动另一个或者恢复另一...

2018-06-13 21:37:40 1137

转载 【转】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 176

原创 Service学习笔记

1.生命周期四个手动调用的方法 手动调用的方法 作用 startService( ) 启动服务 stopService( ) 关闭服务 bindService( ) 绑定服务 unbindService( ) 解绑服务 五个内部自动调用的方法 内部自动调用的方法 作用 onCreat( ) 创建服务 onSt...

2018-06-12 21:17:05 222

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除