
Android
文章平均质量分 60
发强
昨天太多不该,好好把握现在。
展开
-
Android Retrofit2 上传文件携带参数
ApiService 中的写法: @POST("/upload/xxx") fun xxxMethod( @Body body: RequestBody ): Observable<BaseResp>PS: 之前有印象好像可以通过 @Part 注解来一起上传,后来项目中又不好使了,不知道哪里的问题。上面接口中传递的是 Body 格式...原创 2019-06-13 22:28:02 · 7205 阅读 · 0 评论 -
MediaPlayer 暂停再播放的 IllegalStateException 问题
前两天写项目的时候有一个播放背景音乐的功能,使用 MediaPlayer 的时候,进行 暂停-> 重置-> 播放 流程时总是莫名其妙的抛出异常。这里记录一下解决问题的代码:private var mediaPlayer: MediaPlayer? = null /** * 开始播放 */ private fun playMedia() { if (m原创 2017-11-12 23:47:59 · 3365 阅读 · 1 评论 -
Android Studio 3.0 正式版 踩坑记录
记录一下更新 Studio 3.0 之后所遇到的一些坑~!1 , Error:Could not find commons-coder.jar(commons-codec:commons-codec:1.6). Searched in the following locations:file:/Applications/Android Studio.app/Contents/gradle/m2rep原创 2017-10-27 16:22:51 · 12216 阅读 · 1 评论 -
整理一下 PagerSlidingTabStrip
很久之前用的,这几天改其他项目又提到了这种效果,使用 TabLayout 有些效果无法达到预期,所以这里再来整理一下,方便以后再次使用。还是先来贴一下效果图吧:代码里我稍微调整了一下,加了几个自定义属性,下面来描述一下相关属性:indicatorColor 指示器颜色indicatorHeight 指示器高度indicatorPaddingLeftRight 指示器左右内边距原创 2017-09-01 18:44:45 · 449 阅读 · 0 评论 -
Mac 环境下安装 apk 文件到手机
打开 Studio 的 Preferences 界面 (快捷键 command + , ), 搜索 SDK 找到之后复制出 Android SDK Location 路径。然后回到 Finder (也就是桌面), 使用快捷键 shift + command + G ,贴入刚刚复制出来的路径,定位到 sdk 目录下,确认一下 platform-tools 目录中是否有 adb,补全 adb 的绝原创 2017-08-30 10:28:54 · 9378 阅读 · 0 评论 -
Android 一个另类的 '进度条' 效果
转载请注明出处:http://blog.youkuaiyun.com/lv_fq/article/details/77837482 – [发强博客]之前一个朋友问我一个类似于广播电台频率的进度条,可能很多人看到图的第一时间就是 自定义View 。 跟他聊天的过程中提到了 H5 的实现方式,我突然想起来,Android 端好像也可以用类似的方式去实现一下。效果图:这个你能否想到是什么实现方式 ? 自定义Vie原创 2017-09-05 15:21:42 · 3027 阅读 · 0 评论 -
Retrofit 中设置 OkHttp 拦截器,保存和添加 Cookie
整理一下 Retrofit 使用过程中给 OkHttp设置拦截器,并且在请求体中添加用户登录生成的 Cookie 来确认当前用户。之前设置拦截器一般是用来添加公共的请求头,要求比较单一,只需要加进去就行了。后来,因为项目需要先获取登录 Cookie , 然后再给每一个请求加入 Cookie 信息,这个时候我的写法是这样的:new OkHttpClient().newBuilder().addInt原创 2017-08-13 00:37:19 · 6048 阅读 · 2 评论 -
入门级 MVP
前段时间在腾讯课堂看了一个关于 MVP 模式讲解的直播,整体看下来感觉还是相当适用于一直对于 MVP 处于理论了解的新手。 这里对于理论知识我就不多说废话了,相信大多数朋友都有所了解。 那么我们就直接开始进行贴代码。最后我会附加一个讲解 MVP 的视频地址(不会的童鞋推荐去看一下)。MVP中的 V首先,我们先来新建一个 V 的接口:public interface IBaseMvpView {}原创 2017-07-26 13:50:14 · 912 阅读 · 1 评论 -
Android Filter ListView, RecyclerView
今天整理的是之前项目中写的一个首页针对于列表进行条件过滤的效果。相关描述: 此次省略xxx字… 。 还是来看一下效果图吧(稍微有那么一点点大,1.5M左右,注意看好操作之后的变化):废话就不多说了,接下来直奔主题,先看一下我们的界面布局:<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schema原创 2017-04-04 14:13:03 · 3104 阅读 · 6 评论 -
Androd 多语言国际化设置
用于控制当前 App 显示的不同语言(我这里是适配的法语):Resources resources = getContext().getResources();DisplayMetrics dm = resources.getDisplayMetrics();Configuration config = resources.getConfiguration();String curLangua原创 2017-08-16 21:22:42 · 467 阅读 · 0 评论 -
Retrofit 实践整理
这篇博客整理一下目前使用的 Retrofit 框架一些用法,配置。 了解过 Retrofit 的人都应该知道,Retrofit 在使用的过程中,需要定义一个接口对象。我是习惯性的把所有接口调用方法,统一写到一个接口里,然后给每个接口都用注释标明接口名称及作用。 目前用引入的库版本为: compile 'com.squareup.retrofit2:retrofit:2.2.0'原创 2017-03-29 22:18:18 · 873 阅读 · 0 评论 -
Android Studio 获取开发版和发布版 SHA1 和 MD5
获取 开发版 MD5 和 SHA1打开 Studio 中的 Terminal 命令行 输入命令:keytool -list -v -keystore /Users/[电脑用户名]/.android/debug.keystore回车之后输入密码,密钥口令为 android , (输入时不可见,输入完成点击回车)获取 发布版 MD5 和 SHA1获取发布版 SHA1 等值也是在 Terminal 中原创 2017-11-14 19:50:40 · 773 阅读 · 0 评论 -
Android 为应用桌面 Logo 添加数字提醒
很早之前,项目中提到要在手机桌面上显示应用的消息数量角标,当时找了很多,最终效果都不理想。这两天又提到这个问题,今天在 GitHub 上找到了一个开源库 ShortcutBadger ,代码拉下来测试一番,公司的三星(5.0),华为(6.0),Vivo(5.1),小米(5.1)都能成功。用法要么直接下载 Demo, 把 Library 引入项目,或者使用开源库首页介绍的用法。除了小米之外,其他的机型原创 2017-05-09 23:43:58 · 3956 阅读 · 6 评论 -
Android 朋友圈之多图显示
转载请标明出处: http://blog.youkuaiyun.com/lv_fq/article/details/77800928 [发强博客](http://blog.youkuaiyun.com/lv_fq)先看一下效果图:MultiImageView:public class MultiImageView extends LinearLayout { public static int MAX_WIDT转载 2017-09-02 14:10:56 · 7328 阅读 · 13 评论 -
OkHttp 添加 Https 单向认证证书(证书类型 PKCS12)
移动端需要在 Http 中添加单向或双向认证证书,防止其他非法请求操作。添加证书文件在 res 目录下添加 raw 目录,然后导入 apicer.pfx(ps:名字自定义) 证书文件。配置证书在 OkHttpClient 初始化时,配置证书类型。 val builder = OkHttpClient.Builder() //将ca证书导入输...原创 2019-01-10 11:21:22 · 3543 阅读 · 0 评论 -
Android 获取、移除 View 的 OnClickListener
之前在代码中设置的通过 View.isClickable 去控制 View 的重复点击,昨天突然发现即使控制了,仍然能够再次触发点击事件,让我很是懵逼。后来翻阅一系列的资料之后,发现了 View.setOnClickListener 源码中的这段代码: /** * Register a callback to be invoked when this view is c...原创 2018-09-02 11:53:41 · 8685 阅读 · 0 评论 -
Kotlin 自定义 kt 文件类名
假如现在是 Java 和 Kotlin 混编的情况,新建了一个 KotlinCode.kt 文件如下:package com.fq.kotlin/** * KotlinCode */fun doSomething() {}然后 Java 代码中模拟调用 KotlinCode.kt 中的 doSomething() 方法,调用代码如下:package com.fq...原创 2018-08-27 00:07:50 · 6883 阅读 · 0 评论 -
Android 自定义键盘整理
前一段时间,由于业务需要,了解了一下关于自定义键盘的相关操作。实现方式主要是两种实现方式,我这里就以一个数字键盘来作为实现。 方式一效果图 方式二效果图 方式一该方式是使用我们最原始的方式,自己画UI ,然后去实现监听事件, 这种方式我们就不过多废话,先来看一下自己画的 xml ,<?xml version="1.0" encoding="utf-8"?&...原创 2018-07-28 14:30:25 · 13072 阅读 · 0 评论 -
Android 旧项目配置 Kotlin 踩到的坑。
运行条件MacOS Android Studio 3.1.2Kotlin Version 1.2.41这两天在些项目的过程中,因为是 Java 语言开发的,想给它引入 Kotlin 支持,所以就直接进行了 Kotlin 配置。至于详细配置,这里就不过多描述了,相信目前市面上相关资料已经很泛滥了。那么下面就直接来整理一下所遇到的坑,如下图:该错误是运行 app 时会报出来的,编...原创 2018-05-31 01:09:39 · 4852 阅读 · 3 评论 -
Android Studio 完美修改应用包名
修改包名,相信大多数项目都会遇到,根据我们正常的修改方式,是这样的。 在种情况是只能修改最外层的那个名称, 如果我们现在是需要修改中间的某一个,这里就行不通了。 那么我们来看一下如何修改成你最终要的包名。 操作图如下: 看到没有,我们只需要在setting里面,把 compact empty middle packages 这个选项去掉,这样,我们的包的层次结构就分开了,这个时候我们原创 2016-07-10 23:34:21 · 124304 阅读 · 27 评论 -
注解+代理 模仿 Retrofit 传参
前几天学习了一下注解和代理。这里记录一下使用自定义注解 + 动态代理,来模仿 Retrofit 的传参方式。注解Java 元注解有四种,这是系统定义的用于定义注解时,区分他们的不同作用。@Target@Retention@Documented@Inherited@Target用于描述注解的使用范围(即:被描述的注解可以用在什么地方) 取值类型有: ElemenetType.CONSTR原创 2017-05-31 11:11:10 · 1059 阅读 · 0 评论 -
SwipeRefreshLayout、RecyclerView、BaseRecyclerViewAdapterHelper 三者组合的刷新加载View
这里是利用系统的 SwipeRefreshLayout,RecyclerView ,加上开源库 BaseRecyclerViewAdapterHelper 组合而成的一个View ,可控制是否刷新,加载,不用每次都去写一个 SwipeRefreshLayout 嵌套 RecyclerView 。使用 RecyclerView 和 BaseRecyclerViewAdapterHelper 版本如下原创 2017-11-20 15:17:06 · 1388 阅读 · 0 评论 -
Android 朋友圈之点赞列表
转载请注明出处:http://blog.youkuaiyun.com/lv_fq/article/details/77837482 – [发强博客]系列博客Android 朋友圈之多图显示 Android 朋友圈之评论回复列表 Android 朋友圈之点赞列表正文效果图:具体实现代码LikesViewpublic class LikesView extends TextView { private转载 2017-09-04 14:53:23 · 4874 阅读 · 0 评论 -
Android 朋友圈之评论回复列表
转载请注明出处:http://blog.youkuaiyun.com/lv_fq/article/details/77836700 – [发强博客]系列博客Android 朋友圈之多图显示 Android 朋友圈之评论回复列表正文还是老流程,先来看一下效果图:然后是主要实现代码: CommentsViewpublic class CommentsView extends LinearLayout {转载 2017-09-04 13:53:52 · 14436 阅读 · 0 评论 -
Android 控制界面刷新小技巧
今天整理一下在项目中怎么去控制我们的数据刷新。 不需要广播、事件总线,就能全局性的控制想要刷新的界面。先来看一下效果图: 近期在写项目的过程中,感觉很多界面中的状态,如果在详情页或者其他地方改变之后,需要进行同步的话,控制起来还是比较麻烦的。就比如一个列表界面,我在详情页进行操作之后,回来之后列表状态需要改变,如果我没操作,回来之后是不需要改变,一般写法要么是考虑 startActivityFo原创 2017-03-15 13:02:01 · 8947 阅读 · 6 评论 -
Android Studio 上传 Library 至 Jcenter 生成依赖的两种方式(菜鸟级教程)
之前感觉 Studio 中直接使用 compile ‘xxxxxxx’ 感觉挺方(装)便(逼)的。然后网上翻阅了老多的资料,不停的去尝试。虽然当时也成功了,后来才发现原来账号都注册错了(注册成组织账号了 /尴尬)。这里整理一下上传的完整步骤。注册Bintray官网首页默认注册是组织 , 个人的正确注册地址是:https://bintray.com/signup/oss这里注意一点 不能使用国内的邮箱原创 2017-05-20 00:02:57 · 3687 阅读 · 4 评论 -
Android WebView常用整理
整理一些关于 WebView 常用的知识点。常用方式:mWebView= (WebView)findViewById(R.id.webview);mWebView.getSettings().setJavaScriptEnabled(true);mWebView.loadUrl(mWebUrl);mWebView.setWebViewClient(new WebViewClient() {原创 2016-08-24 13:19:33 · 590 阅读 · 0 评论 -
Android 高仿 IOS 滚轮选择控件
最近根据项目需要,整理了一个相对比较全面的 WheelView 使用控件,借用之前看到的一句话来说,就是站在巨人肩膀上,进行了一些小调整。 这里先贴上效果图一般常用的时间选择格式,,单项选择,以及城市联动,这里基本都可以满足了。这里把 单项选择,和 日期时间选择 给提出到 Util 类中,代码如下:public class Util { /** * 时间选择回调 */原创 2016-08-28 01:22:44 · 12117 阅读 · 18 评论 -
WheelView 实现 日期和时间同时选择
项目需要,整理一个同时选择日期和时间的控件。 效果图: 这里直接写成一个Dialog类,便于集成到项目中。下面直接贴出主要实现代码 DateTimeDialog:public class DateTimeDialog { private Context context; private Dialog dialog; private static int START_YEAR原创 2016-07-19 17:20:46 · 3838 阅读 · 4 评论 -
Android 自定义Dialog,文字动态加载效果。
之前在技术问答上面看到一个提问 “加载中…” 后面三个点是动态的,这么一个效果实现。想来想去,好像没想到好的处理方式。 尝试了一下,以一个最笨的方式实现了。先来看一下效果 : 我是通过自定义一个Dialog,加载中的效果,是在Dialog内部实现的,进度还是从Activity里面控制的。 下面是Dialog实现类:public class CustomDialog extends A原创 2016-06-26 14:08:18 · 6938 阅读 · 11 评论 -
Android 获取字符串首字母,并对字符串列表进行排序。
主要用于对联系人进行排序原创 2016-06-23 00:38:16 · 10955 阅读 · 2 评论 -
Activity+Fragment选项卡整理(二)
继上一篇博客,Activity+Fragment选项卡整理 这里是在之前的基础上,做了一些修改,底部的菜单项都是通过配置文件来直接控制选中状态。 效果图,还是一样的, 代码量不多,我就直接贴了。 首先我的主界面配置文件还是一样的,基本没什么变化。 activity_main.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayo原创 2016-06-21 23:45:09 · 620 阅读 · 0 评论 -
Activity+Fragment选项卡整理
Activity+Fragment 选项卡整理。原创 2016-06-18 23:16:59 · 841 阅读 · 1 评论 -
进一步简化你的 ViewHolder
目前在写项目的过程中,虽然 RecyclerView 已经出来很久了,但是仍有一部分朋友(包括我)再继续使用着 ListView,GridView . 在使用的过程中,使用 ViewHolder 进行 ListView,GridView 的优化,是必不可少的,所以,我们每次在 getView 的方法中 都会去利用 ViewHolder 去进行 View 的复用。 写法如下:@Override原创 2016-07-14 22:30:20 · 2818 阅读 · 10 评论 -
关于百度地图的 230错误 APP Scode校验失败问题
今天在接入百度地图的时候,定位成功了,并且也获取到了当前的经纬度,然后继续下一步,周边检索。这个时候,所有的操作步骤完全是按照官方文档来的,它就是给我闹脾气,再怎么调整,它就是不给我返回数据,城市检索,区域检索,等等,一个个的换,没有一个有作用的,你说我定位都成功了,为什么其他的就是不行呢,然后我官网对于了一遍又一遍,Demo也进行对比,完全没问题。这听起来真是个悲伤的故事~。这确实让我悲伤过度了,原创 2016-07-12 00:46:31 · 1301 阅读 · 0 评论 -
Scroller的使用
Scroller 使用原理介绍 以及demo测试。原创 2016-06-28 00:59:29 · 947 阅读 · 0 评论 -
Android OkHttp Post上传文件并且携带参数
这里整理一下 OkHttp 的 post 在上传文件的同时,也要携带请求参数的方法。 代码如下:protected void post_file(final String url, final Map map, File file) { OkHttpClient client = new OkHttpClient(); // 设置为 form 表单形式上传原创 2016-08-25 13:04:01 · 25099 阅读 · 14 评论 -
Android 带动画的底部弹出视图
最近在项目过程中,因为用到的底部弹出选择视图比较多,所以把之前《Android 高仿 IOS 滚轮选择控件》 源码中的一个底部弹出动画的效果整理了一下。先来看一下效果: 先看一下我们的调用代码:public void onClick(View view) { final BaseBottomView bottomView = new BaseBottomView(this, R.l原创 2016-11-14 00:22:17 · 11332 阅读 · 9 评论 -
一个比较简陋的动态标题栏
没什么说的,就是一个代码整理。 先来看一下效果图: 标题少的: 标题多的: 因为最近两个项目都有类似效果,所以这里整理了一下代码。实现代码借鉴了 PagerSlidingTabStrip.比较简单,所以这里就直接贴出了主要的实现代码:public class HorizontalView extends HorizontalScrollView { private LinearLayo原创 2016-11-14 23:06:50 · 1947 阅读 · 10 评论 -
Android 图片添加水印
拍照或者本地图片添加水印,效果图: 添加水印方法:/** * @param src 添加水印的图片 * @param title 水印文字 * @return */ public Bitmap createBitmap(Bitmap src, String title) { if (src == null) {原创 2017-04-24 13:14:21 · 1012 阅读 · 1 评论