自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

凡尘浊客的博客

sometimes naive

  • 博客(12)
  • 收藏
  • 关注

原创 一个Android本地阅读器的核心功能实现,kotlin+jetpack+mvvm版本

四年前曾经写过一篇主题相同的文章,简单描述了其核心实现,但彼时因为能力问题,并不能很好的阐述清楚。现在自觉有所进步,就想重写一遍,希望可以描述地更清晰。UI和别的组件不是本文重点。先看效果 阅读器R-简介 其实和原来那版变化不大,只是更改了设计模式和代码风格。提出问题:简单地说,阅读器的核心就是将二进制文件读为字符串逐行打印到屏幕上。想实现功能,我们需要解决以下3个问题:

2020-12-26 17:41:15 1539 1

原创 Android Studio 升级2.3以后无法启动App的解决方案

今天升级了2.3版本,发现点击run之后应用无法自动启动,并有这样的报错: Error while executing: am startservice com.will.sxlib.android.tools.fd.runtime.InstantRunService我的手机是一加3,AndroidN搜索了一波,结论是现在需要在手机中提供自应用自启动的权限,在设置中允许应用自启动后点击run就可以

2017-03-13 21:40:17 853

原创 关于使用ListView时某些item点击无效/延迟的解决方案

最近在维护一个项目时发现某个ListView的Item偶尔会出现不可点击的问题。情况是点上去没反应,但getView中的展示逻辑是正确执行的(Item有正确的表现)。折腾了两天,发现问题出在ItemView的LayoutParams上,因为在getView中为ItemView手动设置了LayoutParams,所以导致了这样情况的发生。具体原因,猜测是LayoutParams当中储存了某些listV

2017-02-25 17:53:19 766 1

原创 Android SQLite Database 写入速度慢的一个解决方案

在写之前的阅读器时,就发现数据库写入的速度有些不如人意,一千条左右数据,需要十秒以上的时间才能完成写入,当时未深究原因,只当是disk写入速度缓慢导致的,大概代码如下:public void insert(final List<Book> books, final InsertCallback callback){ new Thread(new Runnable() {

2017-02-18 15:06:49 3149 3

原创 一个android本地txt阅读器的思路与实现

在我刚学习Android的时候,就想着要做一个本地阅读器,后来我的确做了一个,简单实现了功能就匆匆上架市场,之后便再无维护。现在回头来看,界面简陋不说,性能也很差,决定重做一下。 先上图: 项目github地址:https://github.com/YuanWenHai/IReader核心功能因为准备实现的阅读器属于简易版,功能上需要实现的并不算多,核心功能大致有如下几条: 1,保存阅

2016-11-19 11:57:32 29503 3

原创 在布局中使用include引入其他layout时引发click事件不触发的问题

在使用一个简单的布局时,为了简便将已有的一个layout直接引入,但费解的是,将此布局作为一个RecyclerView中的item使用时会无法获取到点击事件。 即,在ViewHolder中对inflate的view设置的点击回调不会被触发。 而通过child的id找到组件后设置listener则可正常被调用。 布局如下图: 一时间尚未找到原因,留到以后来填坑。

2016-10-11 16:11:29 1456

原创 在navigationView中切换/创建fragment时的卡顿优化

在我们的app界面中,经常会有这样的布局:mainActivity托管多个fragment,在navigationView的点击事件中处理fragment的切换逻辑,很简单也很实用。一看到这样的逻辑,我们首先就会想到,fragment之间的关系不能是replace,这样的话每次切换都会销毁并创建新的实例,影响切换时的体验,所以我们用hide和show来隐藏/显示他们。 但不可避免的是,即便我们使用

2016-08-13 16:27:12 3547

原创 利用aosv库实现各种滚动与组件的互动

在几个月之前,看到网易云音乐的这个效果觉得特别震撼,当时思前想后也没想出来这是怎么办到的,直到过了一段时间我发现了aosv这个库,看到其demo有非常多这样的实现,便记下这个库,一时间也没有去研究实现机制。 最近正好想要试一下这个效果,就去看了下代码细节,其实非常简单。 这个效果中,最重要的一点就是,toolbar、header的透明度状态,是与listview的滚动相关的。 而这最重要的

2016-07-22 01:46:19 449

原创 FragmentPagerAdapter中的fragment类型问题

在使用ViewPager时,FragmentPagerAdapter/FragmentStatePagerAdapter是我们最常用的两个adapter,但在使用中有时会出现这样的问题: 明明是Fragment,怎么会提示错误呢? 再看提示: 说我们使用的是不兼容的类型,wtf?这Fragment和Fragment还不一样了? 仔细一看, 还真不一样。 一个是v4包里的,另一个是

2016-07-15 15:23:00 424

原创 Jsoup使用的坑

Jsoup使用的坑在抓取网页内容时Jsoup无疑是个很好的工具,但最近在做一个抓取blog内容的app时,发现抓取下来的代码块部分的换行符消失了,这样代码几乎就没法看了。 Google了一波,得知可以通过以下方式阻止Jsoup对html字符串中换行符的处理:Document doc = Jsoup.parse(source); doc.outputSettings(newDocument.O

2016-07-15 14:54:53 925

原创 小计,困扰了一天的图片内存问题

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-02-24 23:49:31 362

原创 关于天气预报api返回值的处理

最近刚刚学习Android开发,在看《第一行代码》最后的天气预报app,但是因为网站版本的变化,书中提供的天气预报api不能用了,于是就去百度apiStore上找了一个天气预报API。 返回数据是这样的: 我的心情是这样的 因为之前没有接触过json,所以看着非常晕,折腾了好几个小时才弄明白。 其实只需要一个格式转换工具,一切就很清楚了 转换完格式如下 如图所示,如果我想得到city

2016-01-24 00:49:40 1242

空空如也

空空如也

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

TA关注的人

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