- 博客(33)
- 收藏
- 关注
原创 Java 服务器后台如何配置下载文件功能(HttpServletResponse)
@RequestMapping(value = "/download/test.apk") public void downloadEnterpriseApk(HttpServletResponse response) { //1.获取要下载的文件的绝对路径,注意windows和Linux中的斜杠不同的问题 String realPath = "/download/test.apk";// String realPath = "D:\\release.
2020-12-22 11:11:39 1137 2
原创 GradientDrawable和StateListDrawable 的简单使用,以及如何动态改变TextView的背景颜色和文字颜色
Android开发的小伙伴,在遇到TextView 需要设置背景色时,应该会联想到shape<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> ...
2020-01-16 11:55:50 1509
原创 ERROR: Failed to resolve: jsr305
今天在开发的时候,导入一个module,然后莫名其妙报了这是什么鬼问题???看起来好像是依赖库问题,全局搜索后,没有任何关于jsr305的引用。。。。上网查了下,是com.google.code.findbugs:jsr305,这玩意用来检查错误用的,可是为什么报错也没人提到最诡异的是,既然是因为导入module出错,那我就把module删掉好了,结果把module删除完了还报错????...
2020-01-08 16:54:37 1199
原创 MVVM模式下RecyclerView与databinding的结合(2)
Demo地址https://github.com/linqinen708/MyDatabindingRecyclerView很早以前,写过一篇文章MVVM模式下RecyclerView与databinding的结合讲述了如何通过封装RecyclerView和谷歌的Databinding的结合,后来在开发中,逐渐发现其不完善的地方,于是自己通过不断摸索和优化,使其具备下拉刷新和上拉加载功能...
2020-01-02 17:33:42 2969
原创 RecyclerView 自带的上拉加载更多
RecyclerView 大家肯定很熟悉,平常使用的时候也难免会遇到下拉刷新和上拉加载更多,网上相关的控件也是多如牛毛。我特别期待谷歌什么时候能够自己开发一个,可惜一直到现在,也只有一个SwipeRefreshLayout下拉刷新控件,上拉加载连个影子都没。。。如果不想使用第三方的控件,又想有上拉加载更多功能怎么办呢?于是上网查了相关资料,发现RecyclerView有一个监听方法addOnSc...
2020-01-02 17:27:48 4284
原创 谷歌的databinding常见用法
谷歌的databinding非常好用,但是前提你得熟悉各种用法,否则坑很多,很容易从入门到放弃。后来在实际开发中,碰到很多问题,经过自己的探索和修改,逐渐提升了对databinding的熟练度,下面我会额外讲解其常见用法强烈建议封装在自己的ViewModel中再使用,既方便管理,也符合规范1.常见的TextView的文字加载非常简单如果需要直接拼接一些文字,则需要特殊的单引号 andro...
2019-12-24 11:53:07 952
原创 Databinding中ImageView的用法和坑(Java和Kotlin),附带Glide用法
Databinding相信开发过Android的人肯定不陌生,极大的简化了代码量,而且易于维护,不过中间的坑也是很多的,尤其是对于很多新手来说,如果用错了,简直可以用“一脸懵逼”来形容,因为databinding根本不会告诉你xml中的错误错在哪,不过studio3.4之后貌似有了错误的提示,比如哪个参数没找到之类的,不过还是没有像普通的代码一样能够直接提示到第几行。。。 TextView...
2019-08-06 15:10:30 4688 1
原创 桌面小工具以及AppWidgetProvider和RemoteViews的简单应用(兼容8.0和9.0)
前段时间写代码,无意间看到了RemoteViews这个类,觉得挺陌生的,于是上网查资料,发现是一个可以改变通知栏和桌面小工具的布局的控件,于是开始研究桌面小工具,虽然代码很简单,但是坑超级多,而且网上的资料不是很全,很多都没有兼容8.0和9.0,下面我附上亲测有效的代码和demo。桌面小工具(线程Thread版)https://github.com/linqinen708/MyAppWidget...
2019-03-25 13:59:40 882
原创 Android中的MVP的简单介绍和使用
MVC、MVP、MVVM模式想必很多程序员都听说过,今天我简单介绍下MVP的使用。 并附上demo地址: https://github.com/linqinen708/SimpleMvpDemo想要了解MVP模式,首先需要了解MVC模式,因为MVP模式就是由MVC演化而来的。做过IOS开发的人应该不陌生,IOS的新建默认项目会自动使用MVC模式,并且还专门建立好了Model、View和Co...
2018-08-22 18:19:00 434
原创 Android 平台 HTML5+ SDK的集成(HBuilder离线打包)
如今随着HTML5和移动端的发展,Hybrid和Web App成为了发展趋势。本人也发现纯源生Android App已经无法满足日常所需,所以也开始学习了HTML5、CSS和JavaScript等网页开发的技术。本人使用的是HBuilder开发工具,它在生成Web App的时候有两种方式,一种是云端打包方式,比较简单,只要注册账号后,设置一些id、icon等属性就可以自动生成一个apk文件。难...
2018-04-24 10:38:24 22187 11
原创 二维码的生成和扫描
闲来无事,突然想研究二维码,于是上网查了下资料,谷歌官方其实有对应的SDK和Demo 谷歌官方demo:https://github.com/zxing/zxing这个官方的GitHub比较坑爹,下载来的demo无法直接使用,仔细研究后发现,真正有关的是其中3个文件夹,分别是:core(这个是个开源的库,也可以直接使用com.google.zxing:core:3.2.1)、android-...
2018-03-22 18:12:03 384
原创 Android Studio 升级到3.0后出现编译错误\.gradle\caches\transforms-1\files-1.1\*****-release.aar
Android Studio 升级到3.0后出现各种编译问题,其中有一个问题是关于资源找不到的问题,百度了半天,也没有相关的文章C:\Users.gradle\caches\transforms-1\files-1.1***-release.aar\be5ab119cbd836d03696974a1ba79815\res\values\values.xml最后上网查了半天,终于找到一个类似
2018-01-22 15:33:58 17177 2
原创 Android Studio 升级到3.0后出现编译错误Error:Cannot choose between the following configurations of project
前段时间将Android Studio 升级到3.0后,原本一切正常的项目出现编译错误Error:Cannot choose between the following configurations of project :**: - debugApiElements - debugRuntimeElements - releaseApiElements - relea
2018-01-22 14:29:46 6479 1
原创 MVVM模式下RecyclerView与databinding的结合
如果不知道databinding的小伙伴,建议去了解下,非常实用,尤其是与RecyclerView等控件结合的时候,方便快捷,爱不释手。首先看一下,传统RecyclerView和Adapter如何设置及处理数据的RecyclerView recyclerView = dataBindingBinding.recyclerView; recyclerView.setLay
2018-01-11 18:16:04 10728 7
原创 关于RecyclerView添加HeaderView和FooterView
RecyclerView自己用了很长一段时间,如今基本不怎么使用ListView了,用过RecyclerView的小伙伴都知道,它的很多功能都需要自定义,比如item的点击事件,还有添加HeaderView和FooterView等等。高度的自定义使它受到众多Android码农的喜爱。网上也出现了很多封装好的RecyclerView,可以轻松的添加各种需要的事件。自己出于探索的好奇,也仔细研究了下关
2018-01-11 15:27:02 6393
原创 Spring Boot通过Mybatis,使用mapper接口和xml配置sql,连接数据库
之前闲着没事,研究了下IntelliJ IDEA + Spring Boot + Mybatis的整合由于最早使用的是注解的方式来连接数据库,所以比较简单,后来发行做后台的同事用的一般都是xml的形式,所以也跟着学习了下。发行mapper接口和xml配置sql,比较复杂,尤其是对我这种新手,研究了好久才配置成功。为了防止忘记,故写下来,也给准备学习的人当参考资料。1.首先在配置文件applicati
2017-11-06 18:19:15 29642 2
原创 使用dataBinding出现Warning:Using incompatible plugins for the annotation processing: android-apt.
在使用dataBinding时,Android Studio出现警告Warning:Using incompatible plugins for the annotation processing: android-apt. This may result in an unexpected behavior. 然后编译文件时,报错databinding不存在上网stackoverflow在查了
2017-09-27 11:12:20 1170
原创 IntelliJ IDEA + Spring Boot + Mybatis的整合
本人做Android开发的码农,闲暇时间,想研究研究后台服务器的开发,折腾了半天,在技术总监和同事的帮助下,完成了一个简单demo。做Android的目前一般是用Android Studio 开发工具,这个工具实际上是在IntelliJ IDEA基础上开发出来的,所以本人更喜欢用IntelliJ IDEA 来开发后台,不太习惯用Eclipse,而且IntelliJ IDEA 的功能真的很强大,如果没
2017-09-14 18:28:41 4036
原创 自定义Dialog模仿苹果样式
经常做Android开发的小伙伴,应该会需要自定义dialog,毕竟Android源生的new AlertDialog.Builder()在不同的Android版本上有不同的显示风格,而且未必适合公司App的界面风格。而且很多公司的UI设计师都是以苹果的界面风格来写Android的UI界面。。。为了做出这样的苹果风格Dialog,在网上研究了一段时间,写了一个简单的demoDemo下载地址https
2017-09-14 15:54:58 981
原创 使用SwipeToLoadLayout解决RecyclerView的上拉下拉刷新
SwipeToLoadLayout是一个非常好用的开源控件,可以支持本身能够滑动的控件,比如ListView、ScrollView、RecyclerView、GridView,还可以支持其他WebView,Linearlayout,RelativeLayout,FrameLayout,ImageView,TextView等不能滑动的控件的刷新和加载。 网上关于SwipeToLoadLayout的使
2017-09-14 13:51:26 4576
原创 阿里云热修复技术Sophix的快速接入
1.首先去官网注册并登录账号,并进入控制台创建应用,获得相关的AppId,AppSecret,RSA密钥 2.然后按着接口文档,走流程配置相关信息就行,这个不细说,官网文档写的很清楚3.代码主要有两部分组成, 第一步初始化SophixManager的initialize()方法,写在自己的Application中的attachBaseContext()或者onCreate()方法中就行。 第二
2017-09-06 11:27:32 2865
原创 Android中dp和px的转化问题,以及如何获得手机分辨率和像素密度
网上关于这类的资料很多,本人把常用的一些方法整理出来,方便大家一起使用关于获得手机分辨率和像素密度方法1.int dp = Resources.getSystem().getDisplayMetrics().densityDpi;//像素密度int widthPixels = Resources.getSystem().getDisplayMetrics().widthPixels;//屏幕宽度
2017-08-29 10:53:10 824
原创 关于在Android端如何开启WebSocket
关于这方面的资料网上有很多,在自己做项目的时候,发现不同的后台处理方式,直接导致android端的链接成功与否。后来终于在GitHub上找到了一个可以与后台成功连接的demo,整理成一个service就可以直接用。1.先在build.gradle中导入 compile (‘io.socket:socket.io-client:0.8.3’) { exclude group: ‘o
2017-08-28 17:33:34 2193 1
原创 动态设置TextView的drawable属性
Drawable drawable = ContextCompat.getDrawable(this, R.drawable.state_icon_error); 方法1. mTextView.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);//使用固定大小的drawable 方法2. drawab
2017-08-28 17:19:13 1598
原创 EditText 部分常见属性的介绍
1.设置EditText明文切换方法1:EditText mEditText;if (mEditText.getInputType() == InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD) {/*隐藏密码 TYPE_CLASS_TEXT 和 TYPE_TEXT_VARIATION_PASSWORD 必须一起使用*/ mEditText.setIn
2017-04-13 11:48:29 370
原创 一些Android的面试题及答案(偶尔更新)
热修复 (1)原理:在dex文件中,每个element对应的就是dex文件,所以加载class就是从一个个dex文件中找到对应的code。一旦加载成功后,就直接return。所以,如果2个dex含有相同的class,会先返回前面那个。使用一个新的dex,让 它在element文件表的最前面,这样我们修改的class文件就会被首先加载进来。从而达到替换之前代码的目的。 (2)方案:把有问题的类
2017-03-07 12:56:47 345
原创 AndroidStudio导入项目时的一些常见问题(偶尔更新)
AndroidStudio导入项目一直卡在Building gradle project info参考出处:http://www.cnblogs.com/baron89/p/4843113.htmlAndroidStudio导入项目一直卡在Building gradle project info,实际上是因为你导入的这个项目使用的gradle与你已经拥有的gradle版本不一致,导致需要下载该项目
2017-03-03 11:31:46 1258
转载 Socket的简单介绍
原出处:https://zhidao.baidu.com/question/134774447312820245.html 套接字(socket):是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。 应用层通过传输搜索层进行
2017-02-24 15:09:16 985
原创 一些专业术语的简单罗列
Cordova: Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。 Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。 Cordova支持如下移动操作系统:iOS, Android,ubuntu phone os, Blackberry, Windows P
2017-02-22 17:58:51 1186
原创 SQLite数据库的简单介绍
SQLite是android已经封装好的数据库,只需要简单的代码就可以实现增删改查。用来做android简易的数据库非常方便,下面简单的介绍下其实现:首选需要创建数据库,使用SQLiteOpenHelper来实现创建和更新版本import android.content.ContentValues;import android.content.Context;import android.dat
2017-02-21 15:52:48 1020
原创 一些JAVA面试题和答案(偶尔更新)
堆和栈的区别(转过无数次的文章) 这里写链接内容 堆和栈的区别可以用如下的比喻来看出: 使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就 走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。 使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。JAVA对象的三大特征:多态、继承、封装
2017-02-17 17:03:09 278
原创 activity和fragment的生命周期
网站上关于activity和fragment的生命周期非常多,这里就不做过多的介绍。附上一张个人认为非常清晰的生命周期的图片 关于生命周期,在很多面试中,也是众多面试官喜欢问的问题。 想要将一个app做好,activity和fragment的生命周期必须非常清楚。 下面简单介绍下生命周期中常见的部分:关于activity: 一般onCreate()、onResume()、onDestroy(
2017-02-16 18:10:01 643
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人