- 博客(72)
- 资源 (5)
- 收藏
- 关注
原创 kotlin第三部分复习纪要
2、Flow是冷流,所以collect是挂起函数,不是子协程,并且只有执行collect函数时,上流的代码才会被执行,所以在一个协程中多次调用collect,它们会按顺序执行。(1)flow{ …}内部可以调用suspend 函数;(3)使用 collect() 方法来收集结果。(2)使用 emit() 方法来发射数据;
2023-03-21 16:28:10 182
原创 kotlin第二部分复习纪要
3,它的初始化方法是可能会被多个线程执行多次的,但最后这个变量的取值是仅以第一次算出的值为准的。即,哪个线程最先算出这个值,就以这个值为准。1,LazyThreadSafetyMode.SYNCHRONIZED 通过加锁实现多线程同步,这也是默认的模式。2,LazyThreadSafetyMode.NONE 则没有任何线程安全代码,线程不安全。by lazy 这种委托的方式,可以让我们轻松实现懒加载。最后聊一个很好用的基于委托的小工具。属性委托标准使用懒加载。
2023-03-15 21:48:35 344
原创 计算两个日期之间的间隔以及判断过期超时的工具类
1.时间戳转化为正常格式时间function timestampToTime(timestamp) { var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 var Y = date.getFullYear() + '-'; var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth
2020-08-26 15:21:54 561
原创 理解Glide中LruCache和LinkedHashMap
LinkedHashMap1,LinkedHashMap 是一个双向的链表。2,LinkedHashMap 还有一个特有的变量 accessOrder,他是布尔型变量,true 表示链表按访问顺序,false 表示按插入顺序。3,当 accessOrder的值为true,那么get后会把这个Node放在链表的末尾,这就是利用LinkedHashMap实现LRUCache的核心思想。4,利用 LinkedHashMap 实现LRUCache 必须同时满足 accessOrder = true 且重..
2020-08-13 10:51:49 444
原创 浅析Glide源码执行流程
Glide源码执行流程总结with()1,传入Application类型的参数,和传入非Application类型的参数。2,传入Application参数的情况,和应用程序的生命周期同步。3,非Application参数,会向当前的Activity当中添加一个隐藏的Fragment,以同步生命周期。4,在非主线程当中使用的Glide,那么不管你是传入的Activity还是Fragment,都会被强制当成Application来处理。load()with()方法返回的是一个RequestMa
2020-08-11 16:09:59 221
原创 Vue精要笔记
1,v-for,格式写错了,数组里没有等号,只有冒号;2,脚手架,component,大小写错误3,如果要用到http网络请求,需要在项目目录下npm install vue-resource --save,安装完成后执行npm run dev,然后再Main.js中引用import VueResource from ‘vue-resource’,Vue.use (VueResource). ...
2019-06-18 13:29:31 248
原创 导入新项目无法运行的可能原因和大致思路
1,检查gradle,当前版本gradle与完整项目或ide工具不同。2,检查repositories仓库下的依赖配置有没有国内镜像能否请求到连接。3,检查defaultConfig下的一系列version是否配置正常。...
2019-03-25 10:23:48 622
原创 极光推送集成详细步骤
极光推送可以选择不同的方式,我选择了从官网下载对应文件,得到JPushExample.zip这样一个文件,解压缩后又会得到jpush-android-3文件,jpush-android-3文件第二层目录有一个example文件。把这个example文件以导入module的方式导入到项目,module项目的包名改为自己的项目名,AppKey填入开发者平台的值。然后就可以在平台操作推送内容了。欢迎交流...
2018-11-23 16:23:02 388
原创 沉浸式状态栏的实现
工具类一:public class SystemBarTintManager { static { if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.KITKAT) { try { Class c = Class.forName("android.os....
2018-11-16 14:14:56 211
原创 简单的小算法题
在网上看到一道这样的题目,例如输入 i can fly. 输出fly. can i 于是自己实现了一下。 List&amp;amp;lt;String&amp;amp;gt;list=new ArrayList&amp;amp;lt;&amp;amp;gt;(); String s=&amp;quot;i can fly.&amp;quot;; String [] ar
2018-09-18 14:09:01 676
原创 Android对长图进行滑动涂鸦
由于项目需要对页面进行像做笔记一样的涂绘,所以这个功能点就应运而生,思路是加载完了页面以后就将整个截屏保存,进入编辑页面就将保存图片的地址传入自定义的长图加载控件中,高度的变化与滑动借助于一个修改过得竖直的seekbar,空间内暴露颜色以及画笔粗细接口,以便于自由设定,画笔的撤销原理是将所有path保存在一个list集合里,没点撤销就移除一个然后刷新,最后保存按钮,将当前控件修改过得bitmap保...
2018-09-11 11:44:54 762
原创 清除所有Activity并回到桌面
有的时候我们为了能够快捷的回到桌面,会想很多办法,我也试过很多办法,但大多都不何自己的意,于是我自己琢磨出一套。上代码: Intent intent = new Intent(); intent.setClass(Main_FragmentManagers.this, FinishActivity.class);//其中FinishActivity...
2018-07-10 16:15:28 566
原创 Android Skill
Activity and Task Design This document describes core principles of the Android application framework, from a high-level, user-centric perspective useful to interaction and application designers as ...
2018-05-31 16:43:23 328
原创 图片转换
遇到一个需求就是layout想设置一个背景图片,但是只有这个图片的路径,怎么办?于是就有了如下转换步骤:路径——>Bitmap——>Drawable.然后就可以xxxxx.setBackground(drawable); 路径转换为Bitmap:Bitmap bm = BitmapFactory.decodeFile("路径"); Bitmap转换为Drawable:Drawabl...
2018-05-14 15:52:15 290
原创 如何在csdn中插入视频或动画,转换视频为GIF图片
一开始我是想这样在我的博客中插入一些视频或者动画,但最后发现这并不是一件简单的事,因为csdn本身并不支持上传本地视频到博客,那么又得弄一个个人视频空间,及其复杂。后来我思考把本地录屏视频转换为gif图片,csdn支持上传本地gif图片,这其中要用到一个软件微软底层的一个软件,如果没有安装这个软件,你将无法安装ScreenToGif,等你把这两个软件安装好了以后,就可以将你的视频转换为GIF并上传...
2018-05-09 09:28:34 1188
原创 学习okhttp系列
系统的学习了一下OKHttp相关的内容主要有一下几点okhttp_get okhttp_post okhttp_postfile okhttp_posstSring okhttp_doupload okhttp_doupload1 okhttp_downfile
2018-05-08 17:21:08 235
原创 Android多页面加载
前天面试有人问我多页面加载,我一懵逼。后来才想起来是这么一回事,上代码从页面来看第一层很普通就是一个Activity加上三个Fragment,代码很简单public class MainActivity extends FragmentActivity { private final int CALLLOGS = 0; private final int CONT...
2018-05-08 11:00:44 863
原创 混合开发纪要
混合开发要点在于和web端和客户端之间的交互对于Android调用JS代码:WebSettings webSettings = mWebView.getSettings();// 设置与Js交互的权限webSettings.setJavaScriptEnabled(true);//其中loadUrl("javascript:callJS()")语句中参数中javascript是固...
2018-05-07 11:36:53 181
原创 EditText使用
当我们有这样的需求,在一个输入框中输入字符,但字符数量有限制。就可以这样。 edit_input.addTextChangedListener(new TextWatcher() { private CharSequence temp; private int selectionStart; private int s...
2018-03-30 14:53:34 198
原创 AsyncTask学习笔记
AsyncTask的执行顺序 AsyncTask的参数含义 AsyncTask的操作示例 AsyncTask的第二个构造函数参数 AsyncTask取消 (1)绑定 (1)标记1 (2)标记2
2018-03-13 15:19:49 213
原创 代码混淆系列笔记
学习代码混淆以及加固的笔记如何防止应用被重新打包,以及应对 如何判断应用时候跑在Android模拟器,以及应对 混淆配置,文件在Android sdk目录下 地址 ...
2018-03-05 10:36:27 224
原创 自定义PopupWindow菜单
菜单 private void showPopupWindow2(View view1) { View parent = ((ViewGroup) this.findViewById(android.R.id.content)).getChildAt(0); //自定义布局,显示内容 View view = LayoutInflater.from
2017-12-05 10:00:22 378
原创 一键返回页面顶部的需求
用户又提了个需求,要求一键返回到阅读的顶端,于是自己实现了一下首先定义自己的WebView然后帖布局主代码MyWebViewpackage io.dcloud.H5B79C397.view;import android.content.Context;import android.util.AttributeSet;import android.webkit.WebView;/** *
2017-10-10 16:41:24 896
原创 动态切横竖屏
有个需要切横屏阅读的需求,很简单,就只有几行代码 mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, bo
2017-10-10 16:35:43 358
原创 Android数据库操作工具类
HistoryDAOpublic class HistoryDAO { private DBConnection dbc = null; private SQLiteDatabase db = null; private Context context; //数据库上下文 public HistoryDAO(Context context) {
2017-10-09 11:45:04 1313
原创 阅读进度记忆功能实现
用户提了一个要求,要求保存他的阅读进度,然后在他下次阅读的时候可以继续阅读,然后动手实现了一下,是这样的。 我用的控件是WebViewpublic class WebViewClientEmb extends WebViewClient { // 在WebView中而不是系统默认浏览器中显示页面 @Override public boolean sho
2017-09-27 17:24:39 1350
原创 ScrollView与SeekBar绑定实现滑动时出现小滑块的效果
这是一项挺复杂的工作重写SeekBar重写ScroView主工程布局SeekBar样式修改绑定SeekBar和ScrollView 监听ScrollView的滑动状态1,重写SeekBarpublic class VerticalSeekbar extends SeekBar { public VerticalSeekbar(Context context) {
2017-09-26 15:12:15 966
原创 全局异常捕捉,以及一些小的知识点
这里有一个很厉害的操作,就是把程序里面的crash准确捕捉,然后打印,存在手机。需要的话也可以上传至服务器,这样的话我们的程序在上线之后,也能知道我们的程序出现了什么样的问题上代码public class CrashHandler implements Thread.UncaughtExceptionHandler { //文件夹目录 private static final Str
2017-09-20 08:53:01 389
原创 Dialog自定义上下文花式菜单
这是一个类似于QQ里面长按消息弹出菜单的效果,菜单跟着item动 闲话不说,上代码 先自定义一个Dialogimport android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.TextView;imp
2017-09-19 15:20:33 609
原创 解决GridView和ScrollView滑动冲突
我们知道ScrollView和GridView以及ListView都可以上下滑,但用在一起就会造成滑动冲突,只有重写GridView或ScrollView或ListView方可解决此问题1,重写GridViewpublic class GridViewForScrollView_NoNetActivity extends GridView { public GridViewForScrollV
2017-09-18 10:01:57 1600
原创 双击退出APP,版本更新,字符串工具类,分享到更多
双击退出应该这样操作 private static Boolean isExit = false; private void exitBy2Click() { Timer tExit = null; if (isExit == false) { isExit = true; // 准备退出 ExtUtils.short
2017-09-18 08:55:21 513
原创 也来玩玩反编译
刚刚反编译了一个APP,感觉没有想象中的那么难 1,以解压缩的方式打开apk文件,然后就可以看到图片资源之类的了,但是不能看xml,然后就需要打开xml了。下载AXMLPrinter2.S.jar这个东西,然后把需要解锁的xml和它放在一个目录,打开cmd命令,输入java -jar AXMLPrinter2.jar main.xml > main.txt。就可以查看xml文件了 2,查看代码,
2017-09-15 16:45:59 269
原创 自定义通知栏这样操作应该怎么搞?花式TextView操作在这里
构建通知栏private void sendNotification() { notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);//通知管理器 RemoteViews contentView = new RemoteViews(getPa
2017-09-14 15:55:08 419
原创 wav文件拼接详细步骤
拼接工具类public class WavMergeUtil { public void mergeWav(List<File> inputs, File output) throws IOException { if (inputs.size() < 1) { return; } FileInputStream fi
2017-09-14 09:39:04 3741 1
原创 讯飞语音合成Wav,以及MediaPlayer的一些坑,SeekBar相关知识点
项目中遇到讯飞语音转成WAV,我是这样做的,首先生成.pcm文件,然后再.pcm与.wav互换,最终由MediaPlayer播放,还有进度条之类的小知识点 首先上布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" a
2017-08-29 17:54:27 2577
原创 项目中有可能会用到随机数
项目中有可能会用到随机数,且作为唯一标识,不能重复,代码如下 private void Nodouble(){ HashSet<Integer> integerHashSet=new HashSet<Integer>(); Random random=new Random(); for (int i = 0; i <100000; i++) {
2017-08-24 15:22:37 271
原创 上下文菜单 + 复制粘贴的问题
最近项目中遇到需要有复制文本的功能,难点有一个,就是在listview中如何拿到item的内容,不多说上代码 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { AdapterView.AdapterContext
2017-08-24 12:01:28 692
原创 微信集成后返回用户信息昵称乱码问题
微信集成完毕后,拿到返回信息发现昵称是乱码,折腾好久搞定,上代码 String nickname = response.data.nickname; try { nickname = new String(nickname.getBytes("ISO-8859-1"), "UTF-8");
2017-08-24 10:00:50 2904
长图滑动涂鸦
2018-09-11
多页面加载demo
2018-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人