- 博客(14)
- 收藏
- 关注
原创 uniapp发布到h5,Android如何处理系统返回键
我踩了很多坑,最后使用的只能是 每进一个page页面,调用js,发送给原生当前的page标识,然后在原生onBackPressed里面进行处理。我们知道APP端调用h5方法都是绑定在window上面的方法,故应该uniapp方法暴露在window上面,因为uniapp项目中的this指向vue,而不是window.并且这个方法不能写到methods方法里面,需要在mounted方法处理。然后原生调用uniapp方法回调到h5。那么uniapp接受到回调如何处理呢?
2024-03-22 13:54:41
360
1
原创 uniapp发布到h5调用Android原生拍照,相册,uniapp如何显示并上传
uniapp发布到h5调用Android原生拍照,相册,uniapp如何显示并上传
2024-03-22 11:45:28
1733
2
原创 Kotlin使用Coil加载图片过程中如何设置加载中图片
此处不是讲解 如何使用库以及使用它的优点,有兴趣的同学可以查询下在github上面的这个库,使用起来还是很方便的。在这里主要讲解使用这个库的过程中遇到的一个问题:需求要求从网络中加载图片,在图片未显示出来中间,有一个loading的占位符,加载成功或失败占位符消失详细加载失败使用占位图大家都觉得很简单,这里要讲的不是失败占位图的问题,好了,进入正文。
2024-02-23 15:43:23
489
原创 uniapp实现仿ios底部弹框日期三级选择
uniapp实现仿ios底部弹框三级选择组件代码如下调用方式,可以自己写一个选择框,(自己发挥)选择框 功能实现选择后回显即可。
2024-02-22 17:37:28
540
1
原创 Android 动画以及自定义动画
我们都知道Android 动画分为 帧动画,补间动画,属性动画那么它们有什么区别呢,我们先了解这三个动画的定义和实现方式。
2024-02-22 11:20:51
516
1
原创 HandlerThread原理及优缺点
为了解决这一问题,Google 提供了 HandlerThread,HandlerThread 是在线程中创建一个Looper循环器,让 Looper 轮询消息队列,当有耗时任务进入队列时,则不需要开启新线程,在原有的线程中执行耗时任务即可,否则线程阻塞。HandlerThread 缺点:是不能同时继续进行多任务处理,需要等待进行处理,处理效率较低.HandlerThread 与线程池不同,HandlerThread 是一个串行队列,背后只有一个线程。
2024-02-21 14:17:52
465
1
原创 Handler原理总结
handler的同步屏障就是一个target为空的msg,用来优先执行异步方法的.如果有一个紧急的Message需要优先处理,Handler中加入了同步屏障这种机制,来实现[异步消息优先]执行的功能。同步屏障的作用可以理解成拦截同步消息的执行,主线程的 Looper 会一直循环调用 MessageQueue 的 next() 来取出队头的 Message 执行,当 Message 执行完后再去取下一个。
2024-02-21 14:05:31
2192
1
原创 LruCache 底层实现原理
LinkedHashMap是Hashmap的子类,它内部使用一个双向链表来存储 Map 中的 Entry 顺序关系, 对于 get、put、remove 等操作,LinkedHashMap 除了要做 HashMap 要做的事,还会调整 Entry 顺序链表。LruCache 中将 LinkedHashMap 的顺序设置为 Lru 顺序来实现 Lru 缓存,每次调用 get(也就是从内存缓存中取图片),则将该对象移到链表的。LruCache 每次添加 Bitmap 图片缓存的时候(put 操作),都会调用。
2024-02-20 14:34:36
342
原创 Java 中 try catch finally执行先后顺序
且finally里的修改语句可能影响也可能不影响try或catch中 return已经确定的返回值,若finally里也有return语句则。try或catch中的return语句。
2024-02-20 14:22:33
346
原创 Android studio 如何快速查询冲突jar包并解决
在android defaultConfig里面添加如下。二 如果是依赖树里面冲突的,我们可以exclude处理解决。2 使用app模块里面build.gradle里面排查。一 如果是本地远程依赖冲突的,直接指定版本号即可。这样就能排查出到底哪些依赖发生了冲突。// 显示冲突的依赖库版本信息。
2024-02-20 14:11:41
965
原创 Android Studio更改代码 ,必须先clean或rebuild,更改的代码才能编译进去
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2024-02-19 19:04:06
1542
原创 具体说说MVVM
MVVM说这个之前先说说什么是响应式编程:响应式编程:就是事先构建好事物之间的联系,他们之间因为这层联系而互相驱动.架构介绍MVVM的特点就是双向绑定Model数据模型,比如我们从数据库或者网络获取数据。View视图,也就是我们的xml布局文件和Activity。ViewModel关联层,将Model和View绑定,使他们之间可以相互绑定实时更新模型联系View --> ViewModel -->View,双向绑定,数据改动可以反映到界面,界面的修改可以反映到数据。ViewMod
2021-09-03 16:51:04
332
原创 自定义view的注意事项
1、让View支持wrap_content属性直接继承View或ViewGroup的控件,如果不在onMeasure中做处理,当控件设置wrap_content属性时无法达到预期效果。wrap_content属性会失效。2、让View支持padding属性直接继承View的控件,如果不处理padding属性,则padding会失效。如果继承ViewGroup的控件,还需要处理子元素的margin属性。3、为了让控件使用更方便,尽量添加自定义属性。4、如果View需要响应用户touch事件,需要处理
2021-09-03 16:15:32
642
1
原创 GC原理以及有哪几种工作方式
所谓GC就是 内存空间的释放说起GC原理,先说几个术语.垃圾: 需要回收的对象根: 判断对象是否引用的起点有哪几种基本实现方式:1 标记清除方式标记清除(Mark and Sweep)是最早开发出来的GC算法(1960年)。原理: 从根部开始将可能被引用的对象进行标记,然后没有标记的对象作为垃圾进行回收.缺点: 如果分配了大量对象,其中只有一小部分对象存活的情况下,所消耗的时间超过必要的值,这是因为在清除阶段还需要对大量死亡对象进行扫描.2 复制收集方式原理: 从根部将引用的对象复制到另
2021-09-03 15:43:16
1394
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人