Android
lyldding-HFFW
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FloatScreenView:适用于同时存在多种类型View的飘屏场景
项目中的飘屏场景比较多,但出现的数量一般,另外每个场景的view样式不统一,行数不统一,动画时间也不统一,所以对项目中所有飘屏相关做了重构,不管什么飘屏类型只需调用addFloatView即可支持单行飘屏setSingleLine支持单一动画时间setSingleTime/** * 飘屏view * @author https://github.com/lyldding */cla...原创 2019-12-31 16:07:48 · 795 阅读 · 0 评论 -
Tmp detached view should be removed from RecyclerView before it can be recycled:ViewHolder
最近接手的项目友盟统计中有个RecyclerView的异常特别多,从日志中只能看出问题出现的业务范围,并且从代码的提交记录看,一年前有人调查过这个问题^^,但是这个产品和测试也没有复现这个问题,难道是不影响客户端的正常使用?异常信息:java.lang.IllegalArgumentException:Tmp detached view should be removed from Recycl...原创 2019-11-06 11:51:23 · 12658 阅读 · 2 评论 -
Androidx:Rxjava2中使用AutoDispose解决内存泄漏的原理分析
Rxjava中使用AutoDispose解决内存泄漏的原理分析原创 2019-10-22 10:29:24 · 2038 阅读 · 0 评论 -
AndroidX设计架构MVVM之DataBinding+ViewModel+LiveData
AndroidX设计架构MVVM之DataBinding+ViewModel+LiveData原创 2019-10-23 10:43:57 · 4445 阅读 · 4 评论 -
AndroidX设计架构MVVM之DataBinding搭配LiveData的分析
AndroidX设计架构MVVM之DataBinding结合lLiveData的分析原创 2019-10-18 17:40:29 · 1198 阅读 · 0 评论 -
AndroidX设计架构MVVM之LiveDatal生命周期及数据监听分析
AndroidX设计架构MVVM之LiveDatal生命周期及数据监听分析原创 2019-10-17 18:54:05 · 1298 阅读 · 0 评论 -
AndroidX设计架构MVVM之ViewModel生命周期分析
AndroidX设计架构MVVM之ViewModel生命周期分析原创 2019-10-17 13:19:29 · 3068 阅读 · 0 评论 -
AndroidX设计架构MVVM之ViewModel创建流程原理分析
Android设计架构MVVM之ViewModel原创 2019-10-17 10:20:53 · 1874 阅读 · 0 评论 -
未安装facebook客户端分享图片问题记录
最近做facebook(分享sdk版本为4.34.0)分享图片,根据在 Android 平台分享可知,分享图片需要安装7.0以上客户端。(经测试,在不安装facebook客户端时,分享链可以使用其他不行)。1: 之前的分享方式facebook分享demo中的代码: https://github.com/facebook/facebook-android-sdk/blob/master/s...原创 2018-12-03 11:18:58 · 1521 阅读 · 0 评论 -
Android O startForegroundService(前台服务)流程分析
本文主要分析Android O startForegroundService(前台服务)的流程,以及出现Context.startForegroundService() did not then call Service.startForeground()和null notification 的原因。startForegroundService使用方式:https://blog.csdn.ne...原创 2018-05-18 16:55:28 · 20961 阅读 · 1 评论 -
FLAG_ACTIVITY_NEW_TASK使用场景及原理简析
在非Activity(比如Service,BroadcastReceiver)中startActivity需要添加flag Intent.FLAG_ACTIVITY_NEW_TASK。否则会报Crash:android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context ...原创 2018-10-18 17:55:04 · 13405 阅读 · 0 评论 -
Android:SimplePolygonView 轻松构建带圆角雷达图
SimplePolygonView 可以轻松构建构建M边N层的正多边形统计图,以及各维度的显示。GitHub源码:https://github.com/lyldding/SimplePolygonView效果图展示:xml代码:<!--view-->&a原创 2018-11-06 17:00:55 · 977 阅读 · 0 评论 -
HorizontalPageFlow每一页显示瀑布流并支持翻页
HorizontalPageFlow提供RecyclerView的瀑布流LayoutManager,每一页显示瀑布流并支持翻页。GitHub:https://github.com/lyldding/HorizontalPageFlow原创 2019-01-16 11:37:27 · 855 阅读 · 0 评论 -
自定义侧边栏SideView-支持Android插值器
原创 2019-02-22 16:43:54 · 572 阅读 · 0 评论 -
定制Android日历,只有一个View,非常小巧
自定义Android日历,只有一个CalendarView,非常小巧。功能:支持左右滑动切换月份,上下滑动切换年份,设置背景,边框,周末或周一为第一天,显示其他月份日期等功能。 具体参考Api或者自定义。GitHub:https://github.com/lyldding/CalendarView...原创 2019-03-06 14:20:11 · 1232 阅读 · 0 评论 -
BGABanner-Android控件开启无限轮播后 ,快速滑动,ANR现象分析
控件开启无限轮播后 ,快速滑动,ANR一 使用场景:使用BGABanner控件,当其宽度较小时,比如只有20dp,这样是很容易滑动到左右边界的。默认ViewPager左右是保留1个Item。原创 2019-04-11 15:50:45 · 1282 阅读 · 0 评论 -
Android SelectWordTextView 支持点击选中单词TextView
Android SelectWordTextView 支持点击选中单词。原创 2019-04-09 16:53:38 · 1072 阅读 · 0 评论 -
android自定义简易英文文章阅读器,支持点击查单词
本文主要说明一个简易的英文文章阅读器实现逻辑(^^)一:基本逻辑整体逻辑为TextView+ViewFlipper1:实现页面中单词点击选中2:实现分页功能3:实现简单的翻页动画第一步:实现页面中单词点击选中功能。自定义阅读页面ReaderPage extends TextView因为要有单词点击事件,需要设置setMovementMethod(LinkMovementMethod...原创 2019-08-12 18:06:21 · 1872 阅读 · 3 评论 -
解决TextView 设置ClickableSpan之后,点击和滑动冲突以及空白区域处理
TextView 设置ClickableSpan之后,会覆盖TextView的滑动主要解决问题:setMovementMethod(LinkMovementMethod.getInstance());LinkMovementMethod 继承ScrollingMovementMethod ,所有在TextView为长文本时是可以滑动的,public class LinkMovementMe...原创 2019-08-12 18:11:54 · 2465 阅读 · 0 评论 -
Android扫描多媒体文件剖析
Android扫描多媒体文件剖析 转自:http://droidyue.com/blog/2014/07/12/scan-media-files-in-android-chinese-edition/这篇文章从系统源代码分析,讲述如何将程序创建的多媒体文件加入系统的媒体库,如何从媒体库删除,以及大多数程序开发者经常遇到的无法添加到媒体库的问题等。本人将通过对源代码的分转载 2017-07-13 15:38:17 · 732 阅读 · 0 评论 -
bindService的时候出现Service Intent must be explicit
Service Intent must be explicit的解决方法 今天在学习bindService组件的时候,在AndroidMainfest.xml中定义了<service android:name=".BindService" android:enabled="true原创 2017-05-11 13:15:26 · 702 阅读 · 0 评论 -
progressBar两种实现方式Handler 和AsyncTask
AsyncTask是Handler+Thread的良好封装一个异步任务的执行一般包括以下几个步骤:execute(Params… params),执行一个异步任务,需要我们在代码中调用此方法,触发异步任务的执行。onPreExecute(),在execute(Params… params)被调用后立即执行,一般用来在执行后台任务前对UI做一些标记。doInBackground(Params…原创 2017-05-11 20:21:13 · 656 阅读 · 0 评论 -
Android面试总结----搬运工也有梦想
Android 面试总结----搬运工原创 2017-05-11 16:27:50 · 574 阅读 · 0 评论 -
Android应用层View绘制流程与源码分析
1 背景还记得前面《Android应用setContentView与LayoutInflater加载解析机制源码分析》这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得最终分析结果就是下面的关系:看见没有,如上图中id为content的内容就是整个View树的结构,所转载 2017-05-12 09:44:04 · 449 阅读 · 0 评论 -
Fragment全解析系列:那些年踩过的坑以及解决方案
1、Fragment全解析系列(一):那些年踩过的坑本篇主要介绍一些最常见的Fragment的坑以及官方Fragment库的那些自身的BUG,并给出解决方案;这些BUG在你深度使用时会遇到,比如Fragment嵌套时或者单Activity+多Fragment架构时遇到的坑。简陋的目录1、getActivity()空指针2、异常:Can not perform this action after转载 2017-05-12 15:53:33 · 4823 阅读 · 0 评论 -
LinearLayout和RelativeLayout的常见属性
RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom原创 2017-04-21 11:25:55 · 755 阅读 · 1 评论 -
Android中finish()和onDestory()的区别
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2017-04-21 11:02:02 · 761 阅读 · 0 评论 -
详解Android中AsyncTask的使用
转载于:http://blog.youkuaiyun.com/liuhe688/article/details/6532519/在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同转载 2017-03-22 09:13:17 · 649 阅读 · 0 评论 -
showToast多行居中显示
makeText源码: public static Toast makeText(Context context, CharSequence text, @Duration int duration) { Toast result = new Toast(context); LayoutInflater inflate = (LayoutI原创 2017-07-13 14:58:55 · 2362 阅读 · 0 评论 -
FragmentManager findFragmentById 返回null
关于FragmentManager findFragmentById 返回null 先看Fragment的两种生成方式一.用xml标签生成在fragment的宿主activity中添加xml标签1 <fragment2 android:id="@+id/fragment_newsContent原创 2017-05-10 20:02:48 · 1779 阅读 · 0 评论 -
Android点击图片保存到指定目录,并更新相册
ImageView:<ImageView android:id="@+id/textiv" android:layout_width="10dp" android:layout_height="10dp" android:src="@drawable/textiv"/>点击事件:ImageView ima转载 2017-07-13 15:27:33 · 758 阅读 · 0 评论 -
Android保存图片到本地或者数据库,并通知相册更新
Android保存图片到media,并更新相册//图片保存到数据库uri = MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmapCode, null, null);//得到绝对地址public String getRealPathFromURI(Uri con原创 2017-07-14 19:59:21 · 4708 阅读 · 0 评论 -
RecyclerView使用onBindViewHolder时,同一个Item总是有两个viewholder对象
场景:RecyclerView使用中同一个Item总是有两个viewHolder对象。 比如需要在viewHolder中保存上次刷新的数据时,同一个item有两个viewHolder对象,肯定时不行的,这时只需要在mRecycler中设置setSupportsChangeAnimations()为false即可。((SimpleItemAnimator)mRecycler.getItemAnima原创 2017-09-08 18:29:03 · 14172 阅读 · 1 评论 -
Android O 显示未知来源设置方式
记录:Android O的升级导致一些行为和API的变更。 检查是否同意未知来源软件的安装:boolean flag = false;if (Build.VERSION.SDK_INT >= 26) { flag = getPackageManager().canRequestPackageInstalls(); }else { int id = Settings.Secure原创 2017-10-13 14:50:00 · 2527 阅读 · 0 评论 -
SugarORM 数据库升级流程源码分析
在使用SugarORM的时候,有可能在后期的工作中进行数据库的升级操作。具体的操作参考:http://satyan.github.io/sugar/migration.html记录:在进行数据库升级时 注意 1)不支持select等返回数据集结果的语句; 2)在使用alter sql增加表中列的时候,如果Java文件中也增加同样的字段,则会提示错误,增加重复列,后边的分析会原创 2017-10-13 20:54:24 · 1116 阅读 · 0 评论 -
在短信中点击URL打开相应的App
在短信中点击URL打开相应的App的具体操作。 在AndroidManifest中指定的Activity中添加intent-filter,并不一定是程序入口(android.intent.action.MAIN)启动的Activity:intent-filter> ........intent-filter> intent-filter> action android原创 2018-02-03 18:13:51 · 1112 阅读 · 0 评论 -
在Android O上启动Service遇到问题记录
本文链接:http://blog.youkuaiyun.com/lylddinghffw/article/details/78219327记录场景:Android 8.0 有一项复杂功能;系统不允许后台应用创建后台服务。 因此,Android 8.0 引入了一种全新的方法,即 Context.startForegroundService(),以在前台启动新服务。 在系统创建服务后,应用有五秒的时间来调用...原创 2017-10-12 20:25:21 · 26381 阅读 · 22 评论 -
Android O 中 PackageManagerService 扫描系统Apk 的流程及原生问题
本文主要记录工作中所遇到的bug解析过程,不详细讲解PMS(因为本人小菜一枚哈哈哈哈)。首先,介绍bug复现的场景。系统中的某个预装apk 有三个不同的版本V1,V2,V3且包含so文件,其中V1中so文件在armeabi文件夹下,V2,V3中so文件在armeabi-v7a文件夹下。以下为复现步骤:step1 在Android N 上预装一个版本V1 apk;step2 然后将apk...原创 2018-05-11 17:04:00 · 2195 阅读 · 2 评论
分享