自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 通过图层的方式设置分割线

项目需求开发中难免会遇到设置分割线的问题,令开发者头痛的是:同一个列表,Item不同时,有的分割线是左右有边距的,有的分割线是同屏的,甚至还有的是上下有两条分割线,有的item没有分割线。如果用RecyclerView或ListView的原生方法设置分割线的话,做到如此复杂的需求不好实现。一种解决方案是通过添加View将分割线的颜色作为背景来实现,但是这样的话创建的View比较多。这次分享...

2019-03-28 11:03:47 558

原创 构建者模式在android端中的实际应用

试想一种需求,有一个简单的Bean类,Bean类里有10个属性,但是我们初始化的时候仅仅想设置2个属性,可能会想到构造函数,但是如果需求升级,让我们设置4个,6个属性,如果用构造函数那代码会过于臃肿,此外频繁的set设置属性,调用的地方代码也比较多且可读性不太好,在这时候可以采用构建者模式了。建造者模式的定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。经典...

2019-03-28 10:30:21 518

原创 让开发事半功倍的AndroidStudio高级用法

AndroidStudio作为Google力荐的Android的第一开发工具,自然有很多便于开发者开发的快捷工具或插件。使用好这些工具可以让开发速度事半功倍。下面我根据自己多年的开发经验给出几条as好用的功能。1.Profiler工具此工具包还三大模块:CPU占用率,网络模块,内存模块。图片很直观的反应了此app的三个模块的情况。1.1CPU占用率大一般与程序算法逻辑关系挺大,...

2019-01-28 11:39:57 1225

原创 快速读懂别人代码的技巧

如何快速读懂别人的代码,对于刚入职或刚接手别人项目的开发者来说是件挺重要的事情,这直接影响着以后的开发进度。本文是我根据自己的经验给出几点实用性很强的建议。1.通过AndroidStudio 的DDMS模式下的Android Device Monitor 的Dump View Hierarchy for UI Automator功能监听app任意一个布局的所有可视属性及交互属性(基本涵盖了此x...

2019-01-28 10:27:22 6853

原创 自定义UI卡顿性能检测工具类

UI卡顿作为严重影响用户体验的性能指标,检测UI卡顿是一个很容易让开发者头疼的活。其原因:UI线程进行了耗时操作。说起来简单,但是真正实施起来怎么检测呢?随着app迭代升级,内部代码量的增多,如果检测方法不正确,可能会导致事倍功半的效果;如果有良好的工具或工具类做铺垫,那检测UI卡顿会是一件很快乐的事(仅仅是检测,忽略解决方案哈)。因此封装一个优质的检测UI卡顿的工具类尤其重要!关于h...

2019-01-25 15:08:01 876

原创 android仿微信UI长按控件录音,转化为MP3,支持上传,播放等功能

主要实现功能点:1.实现了长按录音及播放音频功能,并把录音资源格式转化为mp3(基于开源库LAME)2.实现了把mp3文件上传到服务器(基于Retrofit2),支持再次下载播放,缓存功能3.对于权限的管理,本Demo用的第三方库:https://github.com/yanzhenjie/AndPermission4.本Demo内部封装了长按录音控件,解决了与列表滚动View的冲突用...

2018-09-26 17:02:04 3578 1

原创 Android权限问题总结

Android6.0,及api23以上,Android系统有些权限需要运行时动态申请。权限类型:Android权限分为系统权限和特殊权限,而系统权限又分为正常(normal)权限和涉及用户隐私的危险权限(dangerous)。两者的区别:android系统认为normal权限不会威胁用户隐私,可以直接在清单文件中注册,系统就会默认授权这些权限,而dangerous权限则是系统认为此...

2018-09-23 15:53:32 2057

原创 关于android端打开附件(pdf,cad,office等)方式的调查探究

最近项目有打开附件(pdf,cad图纸)功能,以下是我的总结。一.关于pdf文件,目前google是支持打开pdf文件的,需要借助webview,但是最低支持版本是api16,以下是核心代码: mWebView = findViewById(R.id.mWebView); WebSettings webSettings = mWebView.getSetti...

2018-08-03 18:39:04 3778

原创 基于Recyclerview的万能适配器封装-结合实际开发项目碰到的诸多问题的总结

         对于Android移动端来说,大部分列表型界面都需要使用适配器。如果不做好封装,每个界面都定义一个适配器的话,那么不但会使代码变得臃肿,而且以后维护起来也不方便,因此封装一个通用的基类适配器还是挺有必要的,这样不仅可以减少很多很多冗余代码,更重要的是能提高开发效率。网上也有类似的Demo,但是大都是实现复用功能的封装,如果真正开发,还会碰到很多很多问题,此适配器特色:1.实现...

2018-07-23 11:19:47 2703

原创 基于Retrofit的网络请求框架(打印请求参数封装)配合PostMan快速和后台联调

Retrofit2是由Square出品,JackWharton大牛主导开发的一个网络请求框架。如何让Retrofit打印出请求信息:包括请求网址,入参,出参?这个官方给了一个依赖,可以通过添加依赖compile 'com.squareup.okhttp3:logging-interceptor:3.10.0'(版本号可自选到最新版本)HttpLoggingInterceptor intercept...

2018-06-08 10:51:55 3664 5

原创 开发工具之androidstudio,intellij IDEA,pycharms三者共享settings.jar设置

1.换电脑了?换工作了?开发android->开发java->开发python?快捷键重新设定怎么办?我想要绿豆沙?格式化规则。。。都可以通过导出settings.jar包解决。导出步骤(以as界面为例):1.File-Export Settings...2.选择导出的设置,这个根据自己的需要自己选择,常用的几个设置:Style系列(代码样式);Editor系列;Git(版本控制);G...

2018-06-07 20:52:29 5044 4

原创 CommonPullToRefresh:SwipeRefreshLayout嵌套RecyclerView,配合SwipeRefreshHelper 加载更多报错 解决方案

CommonPullToRefresh是一个开源的支持上拉刷新下拉加载更多的控件的库附上原作者介绍:在android-Ultra-Pull-To-Refresh的基础上增加了加载更多的支持,感谢作者下拉刷新支持大部分view:ListView、ScrollView、WebView等,甚至一个单独的TextView加载更多目前支持ListView、RecyclerView、GridView、Swip...

2018-06-07 16:52:38 2710 1

原创 关于popupWindow底部与导航栏( navigation bar)重叠,显示不全的问题分析

最近在做项目遇到个问题:自定义popupWindow,调用public void showAtBottom(View parent) { View view = mPopupLayout.findViewById(getContentViewId()); setAnimation(view);//自定义动画 showAtLocation(par...

2018-05-04 14:00:22 6579 1

原创 关于android api的 getLayoutParams()方法报空指针异常!

.

2017-04-11 13:50:15 7505

原创 如何在onitemclick获取ListView的item

要想搞清楚这个问题,首先需要明确下onItemclick里的形参的意义public void onItemClick(AdapterView parent, View view, int position, long id) 官方文档:parent - The AdapterView where the click happened.view - The view with

2016-09-19 19:58:56 1417

转载 JDK7的Comparison method violates its general contract异常

出错代码块:ListInteger> list = getUserIds();Collections.sort(list, new ComparatorInteger>() { @Override public int compare(Integer o1, Integer o2) { return o1>o2?1:-1; }});ListInt

2016-09-19 13:39:45 2324

空空如也

空空如也

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

TA关注的人

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