- 博客(40)
- 收藏
- 关注
原创 解决7.0以上popupwindow显示位置不正确
/** * @param pw popupWindow * @param anchor v * @param xoff x轴偏移 * @param yoff y轴偏移 */public static void showAsDropDown(final PopupWindow pw, final View anchor, final int xoff, final in...
2019-01-28 11:25:06
1204
转载 浮点数float累加误差分析与解决
1. 浮点数IEEE 754表示方法要搞清楚float累加为什么会产生误差,必须先大致理解float在机器里怎么存储的,具体的表示参考[1] 和 [2], 这里只介绍一下组成由上图可知(摘在[2]), 浮点数由: 符号位 + 指数位 + 尾数部分, 三部分组成。由于机器中都是由二进制存储的,那么一个10进制的小数如何表示成二进制。例如: 8.25转成二进制为1000.01, 这是因为 1...
2018-12-19 16:26:42
2115
转载 fragment 切换判断界面是否可见 setUserVisibleHint和onHiddenChanged使用场景
fragment大家经常应用到 声明周期依赖于宿主activity1 第一种用法:切换fragment/**使用replace方法 */ private void showMyFragment(Fragment fragment) { FragmentTransaction transaction = fragmentManager.beginTra...
2018-12-13 10:28:33
497
转载 scrollview嵌套listview产生的滑动冲突(recyclerview)
Android滑动冲突主要有两种方法:1、外部拦截法 public class ListScrollView extends ScrollView { private ListView listView; public ListScrollView(Context context, AttributeSet attrs) { ...
2018-11-21 10:15:05
290
转载 Android自定义控件三部曲文章索引
前言:在我从C++转到Android时,就被Android里炫彩斑斓的自定义控件深深折服,想知道如果想利用C++实现这些功能,那是相当困难的。从那时候起,我就想,等我学会了自定义控件,一定要写一篇系列出来,方便后来者能更系统完善地掌握它。今天,这个系列就这样默默地诞生了,希望它能够完成它的使命,在你读完这系列博客时,发现定自义控件也不过如此!如果,顺便能给个评论,加个关注,我将不胜感激——启舰...
2018-08-13 17:20:11
146
转载 Android的关于高德地图加载谷歌瓦片,并缓存本地的功能
最近开发的Android的App需要使用到卫星图,不过发现国内现有的百度,高德的卫星图对郊区图层支持的不好,只能使用谷歌的卫星图.在尝试使用谷歌的Google Map API for Android后又发现去要手机安装谷歌服务,并且有可能用到科学上网.所以就想有没有一个既能加载谷歌卫星图的,又不需要安装谷歌服务.最后找到了osmdroid,经过一段时间的研究,发现使用osmdroid的还是...
2018-08-09 17:14:08
1815
转载 Android 启动APP时黑屏白屏的解决方案
在开发中,我们在启动app的时候,屏幕会出现一段时间的白屏或者黑屏,不同设备时间长短不同。很影响用户体验。 首先分析一下,产生这个现象的原因,当我们在启动一个应用时,系统会去检查是否已经存在这样一个进程,如果不存在,就是冷启动。系统和APP本身都有很多工作需要处理。首先系统的服务会先检查startActivity中的intent的信息,然后在去创建进程,最后才是执行启动Acitivy的操作。而我...
2018-08-09 11:18:31
1762
转载 Android视图绘制流程完全解析,带你一步步深入了解View(二)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/16330267 在上一篇文章中,我带着大家一起剖析了一下LayoutInflater的工作原理,可以算是对View进行深入了解的第一步吧。那么本篇文章中,我们将继续对View进行深入探究,看一看它的绘制流程到底是什么样的。如果你还没有看过我的上一篇文章,可以先去阅读 Andr...
2018-08-03 15:32:47
141
转载 Android LayoutInflater原理分析,带你一步步深入了解View(一)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/12921889 有段时间没写博客了,感觉都有些生疏了呢。最近繁忙的工作终于告一段落,又有时间写文章了,接下来还会继续坚持每一周篇的节奏。 有不少朋友跟我反应,都希望我可以写一篇关于View的文章,讲一讲View的工作原理以及自定义View的方法。没错,承诺过的文章我是...
2018-08-03 14:15:46
168
转载 Android应用内多进程分析和研究
正常情况下,一个apk启动后只会运行在一个进程中,其进程名为AndroidManifest.xml文件中指定的应用包名,所有的基本组件都会在这个进程中运行。但是如果需要将某些组件(如Service、Activity等)运行在单独的进程中,就需要用到android:process属性了。我们可以为android的基础组件指定process属性来指定它们运行在指定进程中。有什么好处 ...
2018-03-16 16:12:42
155
原创 简捷的activity管理类(生命周期监听控制)
通常我们设计APP退出功能的时候,常常是设计一个基类Activity,基类里定义一个ArrayList,然后程序里所有的activity都继承自该基类,每个子类创建时都去把该子类activity加入到ArrayList,退出activity页面时把该子类activity移除出ArrayList,当需要退出APP时,就是把ArrayList中所有activity依次finish(). ...
2018-03-16 13:39:30
180
原创 记录一次jdk环境配置爬坑
最近研究sophix热修复,然后用官方提供的补丁生成工具SophixPatchTool_windows生成补丁,老是提示错误官方要求JDK1.7以上,然后我从控制台看了jdk版本确实是1.8,不知道怎么办,很崩溃。没办法,咨询客服呗,阿里开发者网站提工单,几个小时后客服要我加钉钉群,好吧,正好手机上有钉钉,申请加入,竟然还要验证信息,算了,随便写吧,还好很快通过了,一看群里人还真不少,不知...
2018-03-06 11:10:29
167
转载 阿里推出业界首个非侵入式热修复方案Sophix,颠覆移动端传统更新流程!
阿里巴巴对Android热修复技术已经进行了长达多年的探索。最开始,是手淘基于Xposed进行了改进,产生了针对Android Dalvik虚拟机运行时的Java Method Hook技术,Dexposed。但这个方案由于对底层Dalvik结构过于依赖,最终无法继续兼容Android5.0以后ART虚拟机,因此作罢。后来支付宝提出了新的热修复方案Andfix。Andfix同样是一种底层结构替换...
2018-03-01 14:32:39
266
转载 meta-data 元数据初探
Android 中 meta-data 用在 AndroidManifest.xml 文件中。<meta-data>标签是提供组件额外的数据用的,它本身就是一个键值对(Bundle),可以自定义名称和值(value或resource)。它可以包含在以下6个组件中:<application><activity><activity-alias><p...
2018-02-27 14:23:43
2376
原创 树形结构列表实现(RecyclerView实现)
前言 之前习惯用ListView实现列表功能,但是现在很多项目都开始使用RecyclerView,所以本次实现考虑用RecyclerView实现列表功能,顺便复习一下RecyclerView的使用方法。树形结构的实现,难点在于节点选中或展开收起时需要同时考虑父节点和子节点的展示(展开或收起子节点)和选中情况(部分选中、全部选中、未选中三种状态)。先看一下我实现的效果 当节点A勾选时,其子...
2018-02-10 15:53:36
4363
原创 APK安装包体积大小优化指南
前言 本文旨在介绍常见的优化APK体积大小的常用方法,截图介绍多转至别人博客,我只稍微整理。APK构成 在讨论如何减小apk大小之前,理解apk的结构很有必要。一个APK文件包括一个ZIP 文件,该ZIP包含app的所有文件。包括java 字节码文件,资源文件和一个包含了编译后的资源文件。APK包含以下目录:META-INF/:包含了CERT.SF 和 CERT.RSA 签名文件, 以...
2018-02-10 13:54:10
1366
转载 Android混淆心得
最近在做Android应用的混淆,踩了一些坑,这里记录分享下个人的心得。混淆介绍首先先简单说一下什么是混淆和混淆的作用,其实这个搜索下可以找到一堆官方的说法等等,这里简单口语叙述一下,混淆就是把代码替换成a、b、c基本字母组成的代码,比如一个方法名为:function(),混淆后可能会被替换成a()。混淆的好处:代码混淆后阅读性降低,反编译后破译程序难度提高混淆后字节数减少,减少了应用了体积前者只...
2018-01-25 10:20:19
192
转载 自定义控件其实很简单4
尊重原创转载请注明:From AigeStudio(http://blog.csdn.net/aigestudio)Power by Aige 侵权必究!炮兵镇楼前几天身子骨出了点小毛病不爽,再加上CSDN抽风也木有更新,现在补上之前漏掉的1/3上一节结尾的时候我们说到,Paint类中我们还有一个方法没讲[java] view plain copy setShader(Shader shader)
2018-01-19 14:15:03
188
转载 自定义控件其实很简单3
尊重原创转载请注明:From AigeStudio(http://blog.csdn.net/aigestudio)Power by Aige 侵权必究!炮兵镇楼上一回关羽操刀怒砍秦桧子龙拼命相救,岂料刘备这狗贼耍赖以张飞为祭品特殊召唤黑暗大法师消灭了场上所有逗逼,霎时间血流成河,鲜红的血液与冰冷的大地融合交汇在一起焕发出血液的煞气……那么,问题来了,请问这是使用了哪种PorterDuffXfer
2018-01-19 10:11:10
431
转载 自定义控件其实很简单2
尊重原创转载请注明:From AigeStudio(http://blog.csdn.net/aigestudio)Power by Aige 侵权必究!炮兵镇楼上一节我们粗略地讲了下如何去实现我们的View并概述了View形成动画的基本原理,这一节我们紧跟上一节的步伐来深挖如何去绘制更复杂的View!通过上一节的学习我们了解到什么是画布Canvas什么是画笔Paint,并且学习了如何去设置画笔的
2018-01-18 17:24:38
194
转载 自定义控件其实很简单1
尊重原创转载请注明:From AigeStudio(http://blog.csdn.net/aigestudio)Power by Aige 侵权必究!炮兵镇楼自定义View,很多初学Android的童鞋听到这么一句话绝逼是一脸膜拜!因为在很多初学者眼里,能够自己去画一个View绝逼是一件很屌很Cool的事!但是,同样而言,自定义View对初学者来说却往往可望而不可及,可望是因为看了很多自定义V
2018-01-18 17:14:45
191
转载 AS技巧合集「调试技巧篇」
50. 分析传入数据流(Analyze data flow to here)描述:这个操作将会根据当前选中的变量、参数或者字段,分析出其传递到此处的路径。 当你进入某段陌生的代码,试图明白某个参数是怎么传递到此处的时候,这是一个非常有用的操作。调用:Menu → Analyze → Analyze Data Flow to Here快捷键:无,可以在设置中指定。
2018-01-04 10:50:55
2384
转载 Android代码连接Wifi时被系统切换到其他Wifi的问题
转载请注明出处:胖虎:http://blog.csdn.net/ljphhj1.首先要开启Wifi连接开关,mWifiManager.setWifiEnabled(true)2.通过获取List>来获取到Wifi连接列表。(mWifiManager.getScanResults)3.获取List列表。(mWifiManager.getConfiguredNe
2017-12-22 14:03:21
2803
转载 ListView的item展开后完整显示
原文地址:http://blog.csdn.net/lintax/article/details/72598805手机屏幕毕竟有限,当我们要显示较多数据时便不得不舍去一些次要信息,将主要信息优先显示,也使显示效果更加简洁美观。遇到类似的需求,我们使用最多的就是 ListView ,而如果每次点击一个 Item 都要跳转到下一页查看详情,查看另一个时还要返回列表重新进入另一条详情,使得操作繁琐体验降...
2017-12-22 11:29:05
526
转载 Android权限检查API checkSelfPermission失效问题
Android6.0之后,权限分为install时的权限跟运行时权限,如果我们的targetSdkVersion>=23,install权限同runtime权限是分开的,app也要针对6.0已经做适配,没什么大问题,无论运行在旧版本还是6.0之后的手机上都ok,这也是Google推荐的适配方案。但是如果targetSdkVersion < 23 ,在6.0之后的手机上就会遇到一些问题,因为在这种情
2017-12-19 11:14:42
7253
原创 Android热修复--使用阿里AndFix实现
一.作用 上架后app出现重大问题,需要及时修复,但是重新上架版本需要时间成本,而且用户体验也不好,可以通过热修复手段修复bug。二.阿里AndFix介绍 市面上流行的Android热修复工具对比如下,根据实际需要选择了AndFix。想了解更多细节可参考我转载的另一篇文章http://blog.csdn.net/u010452083/article/details/78729832...
2017-12-13 11:16:13
360
转载 【Android】神奇的android:clipChildren属性
声明欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com农民伯伯: http://over140.cnblogs.com正文截图 代码javapublic class HoDragActivity extends Activity { private LinearLayout mai
2017-12-12 10:58:22
362
转载 【Android】不依赖焦点和选中的TextView跑马灯
声明欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com农民伯伯: http://over140.cnblogs.com 正文public class MarqueeTextView extends TextView { /** 是否停止滚动 */ private boolean mStopMarque
2017-12-12 10:27:49
243
转载 自定义View的学习2
实现流式布局FlowLayout我在拉勾网App上搜索公司或者职位的下方发现一个效果拉勾网这些显示的具体数据怎么来的我们不讨论,我们试着来实现一下它的这个布局效果。处于上方的Tag“猜你喜欢”、“热门公司”可以用一个TextView显示,我们忽略它。关键是下方的标签流式布局。我们就来分析它。首先流式布局中的标签应该是个TextView,关于它下方的椭圆形边界,我们可以为其制
2017-12-07 16:43:38
166
转载 自定义View的学习1
Android本身的控件系统可以实现我们开发中的一些基本需求,可是我们在处理实际业务的时候却催生出了Android控件系统不能很好的需求。这时,自定义控件应运而生。在进行自定义View之前我们先来看一下View的坐标系。上图引自刘望舒大神的博客第1种自定义View的姿势——直接继承自View,重写其onDraw方法直接继承自View,重写其onDraw方法,这个方式主要用来
2017-12-07 16:32:30
163
转载 自定义View需要注意的问题
自定义View的分类继承View重写onDraw方式 这种方式主要用来实现一些不规则的自定义View 需要自己处理wrap_content的情况 因为默认的View对wrap_content没做特殊处理,只把这种情况当做match_parent处理 而且padding也需要自己处理 margin不用 因为margin是父容器确定的继承ViewGroup派生特殊的Layout
2017-12-07 16:31:01
523
转载 网络编程
第一 概述一、概述:1、网络模型:OSI参考模型和TCP/IP参考模型 2、网络通讯要素:1)IP地址:InetAddress .网络中设备的标识 .不易记忆,可用主机名Internet上的主机有两种方式表示地址:域名:www.baidu.com,IP 地址:202.108.35.210 InetAddr
2017-12-07 14:21:50
232
转载 安卓开发必须收藏的网站
干货链接Android源码下载cleopard的资源 - 下载频道 - CSDN.NET2014年下载频道人气资源大集合,免积分!-CSDN论坛-CSDN.NET-中国最大的IT技术社区新鲜干货来了 2015年1、2、3、4、5月最热下载资源大集合-CSDN论坛-CSDN.NET-中国最大的IT技术社区新鲜干货来袭 2015年5月最热资源大集合-CSDN论坛-CSDN.
2017-12-07 13:57:26
1369
1
转载 studio界面、快捷键
按键说明F1帮助Alt(Option)+F1查找文件所在目录位置Alt(Option)+1快速打开或隐藏工程面板Ctrl(Command)+Alt(Option)+打开设置对话框Alt(Option)+Home跳转到导航栏Esc光标返回编辑框Shift+Esc光标返回编辑
2017-12-06 14:02:21
740
转载 Android优化指南
Android系统中GC内存泄漏的原因 主动回收内存System.gc();、getruntime.runtime.gc导致内存泄漏主要的原因是,申请了内存空间而忘记了释放。如果程序中存在对无用对象的引用,那么这些对象就会驻留内存,消耗内存,因为无法让垃圾回收器GC验证这些对象是否不再需要。如果存在对象的引用,这个对象就被定义为"有效的活动",同时不会被释放。要确定对象所占内存将被
2017-12-06 13:43:09
402
转载 Android热修复技术选型——三大流派解析
原文 http://www.infoq.com/cn/articles/Android-hot-fix 主题 安卓热修复 2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案、阿里AndFix以及微信Tinker,它们在原理各有不同,适用场景各异,到底采用哪种方案,是开发者比较头疼的问题。本文希望通过
2017-12-06 13:41:34
206
转载 Scrollview回弹效果自定义控件
滚动回弹效果分析:首先,创建一个类,继承scrollview,重写ontouch事件,实现伸缩回弹效果。[scroollview节点下只能有一个子节点,这个子节点就是我们要移动的view布局] 第一步:获取要操作的子view布局第二步:重写onTouch事件监听 分析具体事件:观察分析得出结论:让布局移动每一次拉动的Y轴一半的距离,然后松手滚动[携带动画]
2017-12-06 13:30:52
562
转载 Android刮刮卡自定义控件
网上的都是自己绘制的或者图片,我的需求是可以随意的自定义底部和顶部的布局。所以自己重写一个,原理就是直接继承 View 来实现一个刮层,让这个刮层和图片以及文字不产生任何依赖,再结合 FrameLayout 将刮层放置最上一层,刮层之下你想放多少图片文字,图片文字要怎么布局摆放都行。由于是FrameLayout ,刮层的上面想加内容都是可以的。如图: 原理:刮刮卡无非
2017-12-06 11:10:31
370
转载 Android自定义安全键盘
在银行APP里经常要自定义键盘,例如实现下面这样的效果 首先在xml文件里定义键盘123456789101112131415161718192021222324252627282930"http:/
2017-12-06 11:05:38
2631
1
转载 Android自定义指示器时间轴
指示器时间轴在外卖、购物类的APP里会经常用到,效果大概就像下面这样,看了网上很多文章,大都是自己绘制,太麻烦,其实通过ListView就可以实现。 在Activity关联的布局文件activity_main.xml中放置一个ListView,代码如下。由于这个列表只是用于展示信息,并不需要用户去点击,所以将其clickable属性置为false;为了消除ListView点击产生的
2017-12-06 11:00:25
594
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人