Android及开发
文章平均质量分 77
零下0814
热爱Android,热爱Google,热爱互联网
展开
-
细谈RecyclerView:(二)刷新闪烁?不存在的,带你了解RecyclerView局部刷新
在上一篇文章中我们谈到了如何利用RecyclerView来优化布局,使用的方式的是通过多布局的方式来实现的。如果你还没有看过之前的文章,记得去看一下哦。细谈RecyclerView:(一)优化布局在第一篇文章中提到到,如果想使用RecyclerView,那么肯定是需要要创建想对应的Adapter。 @Override public RecyclerView.ViewHolder on...原创 2018-03-09 11:21:56 · 4868 阅读 · 2 评论 -
Android开发中那些相见恨晚的小技巧(一)
前言放心,以下所提到的都已经在项目中被证实有效,可安心食用。RecyclerView滑动时FAB自动隐藏 recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(...原创 2018-08-20 18:14:55 · 371 阅读 · 0 评论 -
获取View显示区域的百分比
/** * 获取view当前占据屏幕的百分比 */private int getVisibilityPercents(View currentView) { int percents = 100; Rect rect = new Rect(); //防止出现视频已不在可见得范围之内仍然返回100(完全可见) boolean is...原创 2018-11-14 13:51:05 · 3050 阅读 · 2 评论 -
圆形图显示问题
开发中如果使用了CircleImageView等第三方圆形控件,如果你又恰好使用Glide作为加载图片,那么在第一次加载图片的过程中可能会出现只显示占位图,但图片没有显示的问题。以下会介绍几种解决方法。第一种解决方式是改变Glide显示图片的方式: Glide.with(this) .load(url) .asBitmap() .ce...原创 2018-11-15 11:04:15 · 305 阅读 · 0 评论 -
图文短视频信息流开发总结(仿小红书, Instagram)
少废话,先看效果需求分析在开发中需要实现图文视频信息流的功能,可以参考下面的动图:上面的动图来自小红书,我们可以发现:整个列表中有图片(多张)以及视频,视频是可以自动播放的。根据需求,我们来需要实现图片标签的功能,这一块我们是参考Instagram的效果。见下图:很抱歉,gif中没有很好的体现需要实现的效果,那么我就用文字描述一下吧。如果图片上有标签,那么当滑动到图片时,需要显示一个...原创 2018-11-22 09:55:20 · 4348 阅读 · 3 评论 -
自定义LayoutManager,实现RecyclerView折叠效果
少废话,先看效果图!分析根据效果图我们不难看出:我们需要实现列表的折叠与展开的效果,也就是说RecylerView需要有两个状态:一个是展开状态,其实展开状态就是常规的LinearLayoutManager;另外一个是折叠的状态,这个就需要我们自定义LayoutManger实现了。实现public class StackLayoutManager extends RecyclerView...原创 2018-12-30 16:05:19 · 2473 阅读 · 2 评论 -
BottomSheetDialog基础设置
BottomSheetDialog dialog = new BottomSheetDialog(_mActivity);dialog.setContentView(view);//设置BottomSheetDialog的默认初始高度BottomSheetBehavior sheetBehavior = BottomSheetBehavior.from((View) view.getPare...原创 2019-01-08 17:23:10 · 1140 阅读 · 0 评论 -
警告信息“Nested weights are bad for performance”的消除方法
原因分析在布局进行嵌套使用时,父布局与子布局都使用了android:layout_weight,但不是必须使用时,便会出现如题所示的警告信息。解决方法根据实际情况,去除子布局中非必须使用的android:layout_weight。<LinearLayout android:layout_width="match_parent" android:lay...原创 2019-01-08 17:25:52 · 1040 阅读 · 0 评论 -
解决TaskExecutionException: Execution failed for task(app:transformClassesWithDexForDebug)
前言最近在开发中频繁遇到org.gradle.api.tasks.TaskExecutionException: Execution failed for task这个问题,导致无法编译通过。这里我给出自己的解决办法。分析1.自定义属性检查attrs.xml文件中有没有相同的属性名(我在编译的过程中会给出错误的提示):重命名属性提取属性,作为公共的属性<attr name=...原创 2019-01-16 11:58:05 · 5599 阅读 · 0 评论 -
编写优美 Android 注释的常用语法
附上Android君今天要分享的是关于Android注释系统的一些强大功能!!实践证明,拥有良好的注释是可持续维护的重要标准比如你直接查阅Activity.java 的源码,将会看到大量绿色的注释,而且仔细观察除了我们常规的注释外还有一些特定语法的注释。下面贴上一段来自官方的例子:/** * An activity is a single, focused thing that th...转载 2019-01-23 11:27:06 · 718 阅读 · 0 评论 -
这一次,彻底解决Java的值传递和引用传递
这一次,彻底解决Java的值传递和引用传递 本文旨在用最通俗的语言讲述最枯燥的基本知识学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨论的话题又是充满争议:有的论坛帖子说Java只有值传递,有的博客说两者皆有;这让人有点摸不着头脑,下面我们就这个话题做一些探讨,对书籍、对论坛博客的...转载 2019-02-27 18:00:25 · 240 阅读 · 1 评论 -
Google Awareness API使用与介绍
前言在开发中,有的时候需要我们监听很多系统的状态,比如:是否有耳机插入、当前用户的活动状态(跑步,散步,静止状态等)。通过检测这些状态,我们可以做很多人性化的操作,比如:监听到用户插入了耳机,我们可以打开音乐播放器准备播放音乐。插一句,如果你是安卓的老用户,你可能知道安卓上有一款应用叫Tasker。这款应用是通过用户设定一些条件,当触发了设定好的条件后会执行用户已经指定好的操作。概括起来就是:...原创 2019-02-14 09:18:47 · 1503 阅读 · 0 评论 -
TextView不显示
今天在开发中遇到一个极其奇怪的问题:给TextView设置Text但是文字并没有显示。一开始我以为是Visibility设置为不可见,但是经过查看代码并没有。然后我又怀疑是不是文字的颜色和背景弄成一样的,导致显示出来的文字看不出来。在布局文件中查看并没有。这就诡异了啊!思前想后,左顾右盼后猜测可能是因为View还没被渲染出来,于是在setText()那一块加了view.post()于是,...原创 2019-02-12 15:54:09 · 2907 阅读 · 1 评论 -
Hash算法总结
原文地址:https://www.jianshu.com/p/bf1d7eee28d01. Hash是什么,它的作用先举个例子。我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志。也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的人很多,身份证也可以伪造。最可靠的办法是把一个人的所有基因序列记录下来用来代表这个人,但显然,这样做并不实际。而...转载 2019-03-19 11:41:50 · 659 阅读 · 0 评论 -
如何关闭跨进程的前台服务?
工作中遇到了这样一个问题:App支持记步功能,在开发的时候我把它放到了单独的进程中,为了能够实现App在后台也能记步的功能,在进程中开启了一个前台服务。之前由于产品的功能模块比较少,所以不支持它的关闭与开启,但是随着软件的迭代更新,功能模块越来越多,于是产品需要实现这样的需求:当用户把步数的功能拿掉后,对应的记步通知也要消失;把步数功能添加进导航栏,记步的通知也要随之出现在通知栏。上图是添加了...原创 2019-05-13 22:54:28 · 1027 阅读 · 0 评论 -
Android指纹识别API讲解,一种更快更好的用户体验
本文转载自:https://blog.csdn.net/guolin_blog/article/details/81450114我发现了一个比较怪的现象。在iPhone上使用十分普遍的指纹认证功能,在Android手机上却鲜有APP使用,我简单观察了一下,发现Android手机上基本上只有支付宝、微信和极少APP支持指纹认证功能,就连银行和金融类的应用都基本不支持,甚至很多开发者都不知道And...转载 2019-05-09 16:41:46 · 369 阅读 · 0 评论 -
改变虚拟导航栏(navigation bar)背景色及图标颜色
众所周知,安卓系统中存在着虚拟的导航栏,它们不是实体按键,而是通过软件实现的。一般而言,虚拟导航栏是长成下面这样的:系统中默认虚拟导航栏的背景是黑色的,按键的颜色是白色。但是如果软件需要自定义主题色,很多时候,我们都希望它的背景色能跟主题色保持一样。那我们怎么实现呢?<item name="android:navigationBarColor">@color/colorPrima...原创 2019-05-16 09:12:07 · 22413 阅读 · 0 评论 -
弹出Dialog的时候如何调出输入法?
如果Dialog里面有一个输入框,弹出的时候需要弹起输入法,该怎么操作呢?设置属性:dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); dialog.getWindow()....原创 2019-05-29 12:03:35 · 1084 阅读 · 0 评论 -
在代码中正确获取View宽高的四种方法
前言在介绍正确获取View宽高的方法之前,我们先看一下,如果直接在代码中用View.getWidth() / View.getHeight()看看能不能获取到View的宽高。其实不用写demo,你应该也能猜到,如果这种方式都可以,那我就没有必要在向你介绍正确的方法了。但是我们要抱着学习的心态(自己掉过的坑才是自己的)来掌握方法。少废话,直接上代码! <?xml vers...原创 2018-08-01 12:38:15 · 6503 阅读 · 1 评论 -
2017年,Material Design有哪些改变?
时间飞快,昨天好像还是一月,然而今天已是十二月。今年你有时间来了解一下Material Design在2017年有哪些改变吗,今天让我们用四分钟来大概的了解一下Material Design在2017年里都有哪些改变。2017里Material Design有哪些改变?简短而言离线状态通知渠道图标框架设置界面颜色系统中的导引颜色工具文本字段框具体而言你可以在文末找到具体的链接地址离线状态让我非常开...翻译 2018-03-14 19:37:45 · 263 阅读 · 0 评论 -
在实践中学习:如何开发跨平台的Web应用程序
摘要:随着移动设备的普及,应用程序的需求变得必不可少。开发一个应用程序有多困难,尤其是跨平台的应用程序?该论文分享了一个涉及跨平台在移动设备上运行的学生服务Web应用程序的项目经验。本文首先介绍了项目的背景,目标用户以及解决方案。然后,重点介绍开发流程,并提供所使用的书面代码和技术说明。目的是让读者了解如何开发适合在移动设备上使用的Web应用程序。本文总结了教学的意义,并提出了进一步发展的思路。关...翻译 2018-03-03 15:42:43 · 1626 阅读 · 0 评论 -
细谈RecyclerView:(一)优化布局
在我们的日常开发中,RecyclerView可以说是无处不在,我相信读者朋友们对于RecyclerView的基本使用应该都已经熟练掌握了。首先,如果我们要使用RecyclerView需要创建对应的Adapter。通常的步骤包括以下几步。继承RecyclerView.Adapter复习方法@Override public RecyclerView.ViewHolder onCreateVie...原创 2018-03-06 09:09:49 · 1488 阅读 · 0 评论 -
Kotlin学习笔记:类和函数
类定义:class关键字你只需要在 类名后面写上它的参数。如果这个类没有任何内容可以省略大括号class Person(name : String , surname : String)类继承:默认任何类都继承自Any类,默认所有类都不可以继承,需要用关键字open/abstract修饰class;继承使用符号:class Person(name : String , surname : St...原创 2018-04-10 18:15:21 · 269 阅读 · 0 评论 -
Kotlin学习笔记:变量和属性
在Kotlin中,一切都是对象。没有像Java中那样的原始基本类型。这个是非常有帮 助的,因为我们可以使用一致的方式来处理所有的可用的类型。基本类型数字类型不支持自动转型val i : Int = 7val d : Double = i.toDouble()字符(Char)不能作为数字直接处理val c : Char = 'c'val i : Int = c.toInt()位运算使用"and...原创 2018-04-10 18:25:44 · 480 阅读 · 0 评论 -
Kotlin学习笔记:扩展函数
定义:在一个类上增加一种新的行为,甚至我们没有这个类代码的访问权 限。这是一个在缺少有用函数的类上扩展的方法;Kotlin中扩展函数的一个优势是我们不需要在调用方法的时候 把整个对象当作参数传入。扩展函数表现得就像是属于这个类的一样,而且我们可 以使用this 关键字和调用所有public方法。//给Context类添加了toast扩展函数fun Context.toast(message : ...原创 2018-04-10 18:28:26 · 317 阅读 · 0 评论 -
TextView.setText() & Resources$NotFoundException
在我们的日常开发中,TextView算得上是最最常用的一个控件。今天我们要谈论的不是TextView的使用方法,而是记录一个我在开发中遇到的一个小坑。在开发中我们要给TextView设置文字的时候,我们会调用setText()方法,通常我们会把String或者String资源作为参数传入进去。 或者像这样 这不能在简单了,那我们今天要讨论的是什么问题呢?问题描述...原创 2018-04-04 18:15:14 · 9338 阅读 · 3 评论 -
ConstraintLayout 1.1新特性使用与详解
就在最近,Constraint Layout1.1迎来了稳定版的更新。1.1版本也带来了很多新特性,今天我们就来学习一下1.1中那些新特性。什么?你还没有使用过Constraint Layout,那你可真是out了,这么棒的东西你竟然没用过,唉~~由于这篇文章的内容主要是讲1.1的新特性,但考虑到的确有的读者可能还没有使用过Constraint Layout,所以在这推荐一篇文章: Constra...原创 2018-05-02 11:39:04 · 1821 阅读 · 0 评论 -
高仿饿了么新增位置
最近由于公司的需求需要实现饿了么新增地址的效果,于是总结一下实现的方式以及在实现的过程中需要注意的一些地方。首先我们来看一下饿了么新增地址的效果。总结一下需要实现的效果有哪些:定位滑动地图时能够及时的获取到地图中心点的位置信息滑动时以及停止滑动的时的动画效果点击位置信息后获取附近位置列表首先我们来分析一下这几个问题:定位的话可以使用高德地图,当然也可以使用百度地图,最终我们采用的是高德地图;滑动时...原创 2018-05-29 18:05:16 · 2918 阅读 · 8 评论 -
AsyncTask源码分析
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11711405我们都知道,Android UI是线程不安全的,如果想要在子线程里进行UI操作,就需要借助Android的异步消息处理机制。之前我也写过了一篇文章从源码层面分析了And...转载 2018-05-30 14:52:09 · 288 阅读 · 0 评论 -
细谈RecyclerView:(三)两行代码带你实现不一样的RecyclerView
如果我们正常使用RecyclerView的话,那我们实现的效果就应该和上面的一样:当我们进行滑动的时候,RecyclerView中的Item停止的位置是取决于你滑动时的速度(Fling),可能会出现的情况是最终我们停止的位置可能位于两个item之间,当然也有可能正好位于某个item的中间。如果这个时候我们的产品经理提出最终停止的位置一定要在某个Item上,不能出现位于两个之间的情况;或者产...原创 2018-06-14 16:34:35 · 2050 阅读 · 2 评论 -
面试没你想象中的难,拿Offer也可以很轻松
前言首先祝大家端午节安康!大概在一个月前就已经打算写一篇关于我三月份面试的一个总结了,但由于没有时间在加上还没有想好该怎么写,所以一直没有写。适逢端午佳节,有了一段相对较长的时间可以理理所以决定下笔。正如标题所说:目前我是一名安卓实习生,现在在上海工作。我在三月份有一段将近半个月左右的面试经历,期间跑过南京,杭州和上海;总共面试了应该有六七家公司,拿到几个Offer就不说了,没有多...原创 2018-06-18 15:37:01 · 6646 阅读 · 2 评论 -
解决Windows下error parsing xml not well formed invalided value 错误
解决Windows下error parsing xml not well formed invalided value 错误问题分析根据报错的内容,错误应该是解析xml文件时非法的格式错误如果你遇到这个错误,你应该会猜测是编码格式的问题,那么恭喜你你已经距离解决问题又近了一步。问题解决在gradle.properties文件中添加org.gradle.jvmargs=-...原创 2018-06-19 12:43:43 · 546 阅读 · 0 评论 -
一个Demo带你了解编译时注解
概要之前在项目中使用到Dagger2,在查看源码的过程中产生了一些疑惑。为什么我使用@Component , @Module , @Inject注解就可以实现依赖注入呢?于是我带着这个疑惑开始学习注解相关的一些知识,希望能通过一个Demo来了解它的原理。demo地址:https://github.com/chrissen0814/AnnotationDemo本文的目的是探究编译时注解的...原创 2018-06-27 10:51:06 · 637 阅读 · 0 评论 -
使用ARouter实现拦截登录功能
@Interceptor(priority = 1)public class LoginInterceptor implements IInterceptor { private static final String TAG = "LoginInterceptor"; private Context mContext; @Override public v...原创 2018-07-02 14:44:46 · 8025 阅读 · 2 评论 -
自定义控件之区域(Region)
前言:最近几天对画图的研究有些缓慢,项目开始写代码了,只能在晚上空闲的时候捯饬一下自己的东西,今天给大家讲讲区域的相关知识,已经想好后面两篇的内容了,这几天有时间赶紧写出来给大家。有关界面开发的东东内容确实比较多,慢慢来吧,总有一天会不一样。我自己的一句警言,送给大家:想要跟别人不一样,你就要跟别人不一样。—– Harvic&nbsp;相关文章:《Android自...转载 2018-07-16 14:48:15 · 1047 阅读 · 0 评论 -
Android开发技巧——定制仿微信图片裁剪控件
本文转载自:Android开发技巧——定制仿微信图片裁剪控件 原文链接:https://blog.csdn.net/maosidiaoxian/article/details/50828664 Android开发技巧——定制仿微信图片裁剪控件 &lt;div class="article-info-box"&gt; &lt;div class="...转载 2018-07-18 13:55:27 · 2280 阅读 · 0 评论 -
从零开始搭建Android组件化框架
本文转自: [从零开始搭建Android组件化框架] (https://www.jianshu.com/p/ba32488f9555) 问题在已经开发过几个项目的童鞋,如果这时需要重新开发一个新项目,是否需要自己重新搭建框架呢,还是从老项目中拷贝粘贴? 我们是否可以封装一个底层的lib库,这个底层的公共基础库 包括了一些第三方库(如: okhttp, retrofit...转载 2018-07-06 10:30:09 · 1709 阅读 · 0 评论 -
Gist工具在Android开发中的使用
假设有这样一个场景:你在写代码的过程中,发现有一个方法你需要特别标记一下,这是你会怎么做?用大脑记(哈哈,不可能,这辈子是不可能的),似乎就算当时记住了,但随着写的代码越来越多,前面走过的坑好像都又忘记了;保存到笔记中,这种方法好像不错,而且还能够永久保存,找的时候也比较方便,但是如果你复制到word中,那个排版你能受得了吗,如果你还要写点注释,你发现你写出来的那个东西已经和你代码中的已经变样了,...原创 2018-03-02 23:02:33 · 748 阅读 · 0 评论 -
Android软键盘的全面解析,让你不再怕控件被遮盖
本文转载自:https://blog.csdn.net/l540675759/article/details/74528641背景1.Android软键盘这块从我入职到现在,是一个一直纠缠我的问题。2.从布局挤压,到EditText显示不全,在到弹出时卡顿,在Android软键盘面前我无数次跌倒。3.因为网上大多数的知识点比较分散而且很杂,所以本篇做一个整合篇。4.Android软键盘这...转载 2019-06-19 23:26:57 · 579 阅读 · 0 评论