自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

junling_的博客

记录一些问题

  • 博客(52)
  • 资源 (20)
  • 问答 (3)
  • 收藏
  • 关注

原创 Room升级(三)

数据库升级Room的基本使用Room与LiveData、ViewModel结合使用Migration随着业务的变化,数据库可能也需要做一些调整,比如增加一个新字段,在Room中如何实现?Android为我们提供了一个Migration类对Room进行升级。Migration有两个参数,startVersion和endVersion,一个表示当前版本,一个表示将要升级到的版本。使用方法创建Migration private static final Migration MIGRATI

2021-01-03 18:34:24 936

原创 Room与LiveData、ViewModel结合使用(二)

直接使用Room的劣势Android在UI线程不能执行耗时操作,在工作线程不能刷新UI(别在这抬杠,我知道一些情况下可以)而我们的数据更新变化了自然需要给用户展示出来看,但是数据变化又在工作线程,这就涉及到线程间通信,很不方便。虽然我们有Hander,AsyncTask,runOnUiThread等等很多好用的原生支持,甚至还有很多第三方库,但这些目前看来都不是最优解。解决方案在以往我们数据发生变化时都需要再去在工作线程中查询一遍数据然后把数据再给到UI线程去刷新,但是现在我们希望数据发生变化时,

2021-01-03 13:38:39 2051

原创 Room的基本使用(一)

Room来源Android采用Sqlite作为数据库存储。由于Sqlite代码写起来繁琐且容易出错,因此,开源社区逐渐出现了各种ORM(Object Relational Mapping)库。常见的有ORMLite, GreenDAO等。Google也意识到推出自家ORM库的必要性,于是有了Room,Room同其他ORM库一样,也是在Sqlite上提供了一层封装。Room相关概念概念Entity:一个Entity对应数据库中的一张表。Entity类是Sqlite表结构对Java类的映射,在Jav

2020-12-29 22:52:57 4131

原创 Android学习资源

极客导航:https://www.jikedaohang.com/Android/Android开发技术周报:https://www.androidweekly.cn/Android开发网:http://www.jizhuomi.com/android/开源中国:https://www.oschina.net/玩Android:https://wanandroid.com/Androi...

2019-11-20 10:06:08 189

原创 Flutter学习资源

Flutter社区中文资源:https://flutter.cnFlutter中文网:https://flutterchina.club/Dart编程语言:http://www.dartdoc.cn/Flutter实战:https://book.flutterchina.club/Flutter自定义Widget:http://flutter.link/...

2019-11-20 10:02:47 208

原创 压箱底的Android UI开源库(二)

1.图片、视频和文档选择库https://github.com/lovetuzitong/MultiImageSelectorhttps://github.com/bingoogolapple/BGAPhotoPicker-Androidhttps://github.com/crazycodeboy/TakePhotohttps://github.com/FinalTeam/RxGalle...

2019-06-04 17:13:51 229

原创 自定义CircleProgressView

背景在网上看到一个效果,虽然很简单,但是做的很漂亮我很喜欢,正好在学习自定义View,于是拿来练练手。来看下效果,直接用的人家的效果图,后面给出连接,不过我做的是个简化版的,毕竟是拿来练手的。分析View中的元素背景圆进度条弧线进度条头部的圆中间的进度文字实现画一个空心的背景圆,需要圆心坐标、半径和宽度,这个很简单;绘制进度,需要计算出弧的圆心角度数、起始点、宽度(不能小...

2018-09-25 20:36:59 795

原创 统计代码行数

4、$name中的name换成git本地配置的name,第一个name不用换。1、在本地项目的目录中找到.git文件夹;2、打开git bash命令行窗口;

2023-12-19 10:27:59 75

原创 Android App因配置https信任所有证书导致Glide加载不出https图片的解决办法

Android App中因使用自定义https证书导致Glide加载不出https资源图片的解决办法。

2022-06-09 13:55:12 734

原创 安装 Vue CLI 报错

报错npm install -g @vue/clinpm ERR! code ERR_TLS_CERT_ALTNAME_INVALIDnpm ERR! errno ERR_TLS_CERT_ALTNAME_INVALIDnpm ERR! request to https://registry.cnpmjs.org/@vue%2fcli failed, reason: Hostname/IP does not match certificate's altnames: Host: registry.c

2021-04-14 23:54:42 1092

原创 04单例模式

单例模式(Singleton Pattern)确保一个类只有一个实例,并提供全局访问点。使用场景需要确保程序中的某个类只有一个实例时,就采用单例模式;利用延迟实例化的方式创建单例,对资源敏感的对象特别重要。要点确保程序中一个类最多只有一个实例;单例模式也提供访问这个实例的全局点;在Java中实现单例模式需要私有的构造器,一个静态方法和一个静态变量。经典的单例模式public class Singleton { private static Singleton singlet

2020-11-19 23:27:07 109 4

原创 03装饰者模式

装饰者(Decorator Pattern)模式动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。被装饰类(饮料)public abstract class Beverage { String description = "Unknown Beverage"; public String getDescription() { return description; } //必须在子类实现 public abstra

2020-11-10 00:34:01 72

原创 02观察者模式

观察者模式(Observer Pattern)定义定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它所有依赖者都会收到通知并自动更新。建立可观察者接口public interface Subject { //持有观察者对象,因为Observer被观察者实现,所以可以通知update到观察者信息 public void registerObserver(Observer observer); public void removeObserver(Observer

2020-11-10 00:33:09 71

原创 01策略模式

策略模式(strategy pattern)定义定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。分开变化和不会变化的部分Duck类内的fly()和quack()行为会随着鸭子的不同而改变,属于变化的部分,将它们从Duck中抽取出来,建立一组新类代表每一种行为。设计鸭子的行为以往:行为来自于继承Duck超类的具体实现,或是继承某个接口后由子类自行实现而来。这两种方法都依赖于实现,没办法改变行为。现在:Duck的子类将使用接口(FlyBehavio

2020-11-10 00:30:22 143 2

原创 Android四大组件-Service

服务Service概念实现程序后台运行的解决方案,适合执行不需要和用户交互的长期运行的任务;服务并不运行在单独的进程中,依赖于创建服务时所在的进程;服务不会自动开启线程,任务默认运行在主线程。定义一个服务继承Service;重写onCreate,onStartCommand,onDestroy方法;清单文件注册。启动和关闭服务启动Intent startIntent = new Intent(this, MyService.class);startSestarvice(s

2020-08-08 23:40:20 151

原创 unsupported modules detected Compilation*****Gradle Java modules and Android-Gradle modules in one p

unsupported modules detected Compilation is not supported for following modules: app. Unfortunately you can’t have non-Gradle Java modules and Android-Gradle modules in one project解决方案:关掉Android Stu...

2019-11-21 09:19:57 248

原创 EventQueue.isDispatchThread()=false Toolkit.getEventQueue()=com.intellij.ide

记录一下这个错误EventQueue.isDispatchThread()=false Toolkit.getEventQueue()=com.intellij.ide,今天正在写Android代码,创建一个新类的时候电脑卡着了,无奈只能强制重启了。重启之后原本好好的IDE出现了这个错误,通过以下方法解决的。大家遇到这个问题可以试一下这个方案。File->Project Structure...

2019-10-15 08:49:35 7070 4

原创 Android 9.0设备http请求报java.net.UnknownServiceException: CLEARTEXT communication to

报错起因新建项目时targetSdkVersion = 28,28对应的是Android 9.0,在此版本中强制使用https,所以当使用http协议运行在9.0手机上时就会报java.net.UnknownServiceException: CLEARTEXT communication to错误,拿不到后台数据。解决方案修改targetSdkVersion版本小于28;只运行在And...

2019-08-29 19:06:12 450

原创 Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versi

问题:Error:Execution failed for task ':app:preDebugAndroidTestBuild'.> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and t...

2018-12-26 16:14:57 266

原创 读取Excel的数据

记录一下读取Excel表格里面的内容xls版本的代码,所使用的jar包以及读取xlsx的jar包都在下面给出:public static void main(String[] args) throws FileNotFoundException, IOException { POIFSFileSystem pfs = new POIFSFileSystem(new FileInput...

2018-12-01 15:11:09 190

原创 Android隐藏标题栏

继承自Activity时在setContentView之前调用requestWindowFeature(Window.FEATURE_NO_TITLE);继承自AppCompatActivity在setContentView之前调用下面任一方法:getSupportActionBar().hide();supportRequestWindowFeature(Window.FEATURE_...

2018-09-29 16:55:42 195

原创 Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved vers

经常在新建项目或者导入别人项目种遇到这个问题,真是烦死大爷了,记录一下。Error:FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:preDebugAndroidTestBuild'.> Conflict with dependency 'com.an...

2018-09-25 20:33:56 307

原创 Android使用RecyclerView实现时间轴,物流进度展示

前言今天在网上看到一篇文章中有个时间轴图片,很是符合我的审美,在能表现出要表达给用户的信息外,极尽简约,很漂亮,打算实现一下。好吧,文章https://www.jianshu.com/p/d03f994b6c44已经给出了实现方式,再copy一遍?No,换一种思路吧。 我的效果1.只有1条发货数据2.多于2条数据右边的实现右边的实际就是一个普通的不...

2018-08-16 15:27:00 6950 4

原创 使用字体库和TextView代替ImageView展示图片

新来的同事介绍了一项之前没用过的技术,使用字体库和TextView代替ImageView展示图片,虽然在项目中尝试了一段时间后我又给去掉了,但是觉得这个技术还是不错的。现在记录一下最最基本的用法,如果想在项目中使用,建议先看下亓斌这篇博客。一般情况下我们展示图片在xml布局中都是用ImageView设置src来展示,比如:<ImageView android:layout_width="10

2017-09-27 23:22:57 627

原创 Retrofit+RxJava上传图片

在做一个商城,第一个版本使用的OkHttp3来进行网络操作的,现在把第一个版本推倒重新做了个版本,于是就用上了正在如火如荼的Retrofit+RxJava来实现网络操作。在上传图片作为头像时实现了一个上午也没搞定(无奈,英语差,看文档吃力啊),现在终于有时间再重新搞一下了。于是把使用OkHttp3上传和Retrofit+RxJava上传都总结了一下。废话不多说,直接贴代码,只要把代码赋值到你的项目中

2017-09-26 15:45:51 7251

原创 Android异步消息处理机制学习笔记

(一)Handler什么是HandlerAndroid消息机制的上层接口,Handler通过发送和处理Message和Runnable对象来关联相对应线程的MessageQueeu.可以让对应的Message和Runable在未来的某个时间点进行相应处理;让自己想要处理的耗时操作放在子线程,让更新UI的操作放在主线程。Handler的使用方法post(runnable):实际也是调用sen

2017-08-22 00:21:18 491

原创 Android开发中常用小方法

1:是不是经常有小伙伴在Activity的onCreate()方法中获取View的尺寸,结果通通为0,没错,此时就没有办法了吗?NO,下面这种方法就可以帮你简单的解决这些问题。 int width = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int height = View.MeasureSpec.m

2017-08-19 23:16:53 244

原创 WebView常见的坑与内存泄漏问题

WebView常见的一些坑Android API 16及之前版本存在远程代码执行安全漏洞,该漏洞言语程序没有正确限制使用WebView.addJavaScriptInterface方法,远程攻击者可使用java反射api利用该漏洞执行任意java对象的方法;WebView在布局文件中的使用:WebView动态添加在其他容器中时,在onDestroy中销毁防止内存泄漏;jsBrige:js与na

2017-08-17 23:28:09 1420

原创 自定义带清除功能的EditText

背景今天上班忘了带手机数据线,但是又嫌模拟器用着不爽,于是就“罢工”一天,但是啥也不干觉着对不起自己吃的饭不是,于是就想着做个功能简单的带清除功能的EditText吧。说干就干,上效果图。思路:使用EditText自带的DrawableRight属性来设置删除图片;判断点击位置在右侧的图片范围时重置EditText的内容;使用TextWatcher观察EdiText没有text内容的时候隐藏删

2017-07-23 15:10:41 632

原创 TextView设置drawableLeft,drawableRight,drawableTop和drawableBottom

需求:效果图需求分析:看到这样的需求,我们一般有3种解决方案: - 左边放一个ImageView右边紧跟着一个TextView; - 放一个TextView通过SpannableString类来帮助处理,我想也是可以做到的 - 放一个TextView,通过drawableLeft/Right/Top/Bottom来处理。 经过考量,第一种方案太low,第二种方案适合处理更复杂的文本,比

2017-07-21 15:12:10 930

原创 内存泄漏常见代码片段

背景:程序的运行离不开内存,尽管硬件技术的发展也让手机的内存不断增大(比如我的OPPO R7s是256M),但是不恰当的编程习惯仍然会导致内存泄漏的发生,这将是一场灾难,所以我们让然应该去避免。内存泄漏与内存溢出的关系:内存泄漏为内存溢出埋下隐忧,因为内存泄漏的实质就是需要释放的内存被生命周期长的对象继续持有导致得不到释放,系统无法重新分配这些内存,随着软件的使用内存资源越来越少,导致内存不够,出现

2017-07-16 15:16:12 1840

原创 ButterKnife中如何绑定头View和脚View

今天遇到了一个问题,给ListView添加HeaderView之后,如何通过ButterKnife绑定HeaderView(FooterView)这个问题,记录一下。下面这个代码片段大家应该都很熟悉:@BindView(R.id.lv) ListView lv; @Override protected void onCreate(Bundle savedInstanceStat

2017-07-12 13:30:45 4292

原创 Android开发中常用命令

1.Android Studio开发环境下强制上传项目到码云,同时也可解决Push rejected: Push to origin/master was rejected问题。git push -f origin master

2017-07-09 16:09:48 407

转载 Android Studio中Git的配置及协同开发

Android Studio中Git的配置及协同开发

2017-07-05 09:53:06 332

原创 Android透明状态栏实践

Android状态栏透明效果:弹出导航栏的效果: 隐藏导航栏的效果: 上一篇:状态栏着色代码实现准备工作:在values/style中添加自定义主题样式: <!--自定义主题--> <style name="ImageTranslucentTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"> </style>在value

2017-07-04 13:59:04 330

原创 Android着色状态栏实践

着色状态栏效果图:下一篇:状态栏透明导航栏弹出来的:导航栏隐藏着的:有效运行环境:OPPO R7s(5.1)和红米note3(6.0),其它机型未测试:代码实现:在colors中定义需要用到的颜色: <!--自定义颜色 --><color name="translent_green">#2EC37D</color><color name="translent_red">#ff0000</colo

2017-07-03 17:09:48 266

原创 EventBus初体验(二)

背景:上一篇EventBus初探遇到一个问题就是在 startActivity(intent);之后立即发送EventBus.getDefault().post(new MessageEvent(“我是EventBus发送到消息”));这个消息,下个界面时无法接收到消息的,当时心里一万只cnm在翻腾,这nm用起来有多少场景不能用。后来才知道EventBus是有粘性事件的,对,你没有看错,是粘性事件,

2017-06-12 12:41:33 381

原创 EventBus初体验

背景:昨天看了启舰大神的关于EventBus的文章,很久以前的东西我居然没使用,今天学习一下。 何为EventBus(https://github.com/greenrobot/EventBus)官方如是说:EventBus is a publish/subscribe event bus optimized for Android.EventBus是针对Android优化的发布/订阅事件总线。值

2017-06-06 18:21:24 293

原创 String为什么要设计成final

前言:今天突然看到一个问题为什么String类型设计为final,之前没深入想过这个问题,现在来看看。源码中对String为什么设计成final的解释:Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because

2017-06-04 12:48:32 9358 5

原创 获取View的坐标和各种距离

自定义控件离不开获取View的各种坐标数据,之前一直掌握的零零碎碎不系统,现在看了一篇刘望舒的博客豁然开朗讲的很好,并且自己也动手测试了一下,感觉很清晰,现在来记录分享一下,毕竟纸上得来终觉浅,绝知此事要躬行嘛: 图1:手机屏幕的布局 图2:对手机屏幕布局的图示Android系统的坐标系和普通的数学坐标系有点不一样,主要是Y轴的正方向向下,有点颠覆传统的认识,废话不多说,先看怎么获取各项数据

2017-06-03 15:27:00 6608

新浪微博图床Chrome插件

Chrome微博图床插件

2020-09-29

eclipse-inst-win64.exe

官网下载Elipse超级慢,现在分享给大家官网下载下来的原版,用着放心。 官网下载Elipse超级慢,现在分享给大家官网下载下来的原版,用着放心。 官网下载Elipse超级慢,现在分享给大家官网下载下来的原版,用着放心。

2020-01-05

apache poi jar包

读取excel表格内容,2007版本之后的xlsx格式需要的apache jar包。

2018-12-01

poi-4.0.1.jar

java 读取Excel中的数据使用的apache jar包,4.0.1版本。

2018-12-01

TimeLineDemo

Android使用RecyclerView实现了一个时间轴,可以用来做物流追踪,简约。原理实现写的很清晰。欢迎提出issue。

2018-08-16

Charles4.1破解版

抓包工具,特别适合Android和iOS开发,破解版,很好用。

2018-07-01

Fragment懒加载

TabLayout+Fragment+ViewPager+FragmentStatePagerAdapter的懒加载代码实践。

2017-10-26

gradle-2.2-all

gradle-2.2-all 官网下载不成功的,可以直接在这里下载。 官网原下载地址:https://services.gradle.org/distributions/

2017-09-17

gradle-2.2.1-all.zip

gradle-22.1-all 官网下载不成功的,可以直接在这里下载。 官网原下载地址:https://services.gradle.org/distributions/

2017-09-17

gradle-2.1-all

gradle-2.0-all 官网下载不成功的,可以直接在这里下载。 官网原下载地址:https://services.gradle.org/distributions/

2017-09-06

gradle-2.0-all

gradle-2.0-all 官网下载不成功的,可以直接在这里下载。 官网原下载地址:https://services.gradle.org/distributions/

2017-09-05

如何使用ButterKnife绑定ListViw的头布局

使用ButterKnife绑定ListViw的头布局和脚布局示例代码

2017-07-12

Android透明状态栏和着色状态栏

Android着色状态栏和透明状态栏小Demo,可直接运行

2017-07-04

Android透明状态栏

Android透明状态栏apk,可直接安装运行。

2017-07-03

popupwindow的Demo

popupwindow的基本用法

2017-06-21

仿京东购物车数量加减控件

仿京东购物车数量加减控件

2017-05-05

IntentService

IntentService基本使用方法Demo

2017-04-09

TopBar示例代码

自定义TopBar代码,如有问题欢迎留言,谢谢~~

2017-04-03

自定义View

自定义View,学习自定义attrs.xml并取值,属性测量和绘制方法,如有问题请指出,谢谢。

2017-03-31

Service的使用方式02(bindService和unBindService)

Android中bindService调用服务的核心代码,有问题欢迎提出,共同进步。

2017-03-31

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

TA关注的人

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