自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sunxiaogang0214的博客

开始记录一些常见问题了

  • 博客(39)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 Java数据结构 Vector和ArrayList 比较

相同点: 1、具有相同的父类AbstractList。 2、数据都是用内部维护的数组来存放。 3、设计理念基本相同。 不同点: 1、Vector是线程安全的ArrayList是线程不安全的 原因:Vector中所有操作都必定有一步是方法被synchronized关键字修饰的,所以是安全的 ArrayList中没有synchronized同步代码,...

2018-07-18 14:43:00 269

原创 分享两个算法,罗马数与整数互相转化(Java)

罗马数简要说明罗马数字符I: 1 V:5 X:10 L:50 C:100 D:500 M:1000特殊字符集IV:4 IX:9 XL:40 XC:100 CD:400 CM:900一般规律例如:III=3 VI=5+1=6 VII=5+2=7 XX=10+10=20 LX=5+10=60 MMM=1...

2018-06-25 16:11:12 565

原创 weex(Android视野)

前言东西比较小众,虽然官网说了很多阿里系应用都在用,但是那个文档,简直是不能忍受的,简单说说集成这几天遇到的问题吧(以Android开发的视野去看待问题)这个是干嘛的?如果熟悉混合开发的对于这个肯定不会陌生。通俗点讲就是阿里出了这么一个东西,让你实现混合开发的。怎么用?web端去写主要逻辑代码,接入到移动端。 移动端怎么用?其实很简单,接入它的sdk,然后调用他的几个核...

2018-06-07 15:59:31 744

原创 Android常用集合List之实现类ArrayList解析

前言主要属性构造方法解析几个主要的和常用的方法modCount++前言基于Java1.8源码,层级结构就不再多叙述,只介绍几个内部方法解析 主要属性 /** * Shared empty array instance used for empty instances. */ private static final Obje...

2018-04-03 13:56:56 1829

原创 记录代码合并时产生的bug

bug提示:Error:Execution failed for task ':app:transformClassesWithJarMergingForQh360Release'.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/androi

2017-11-03 14:05:19 483

原创 仿支付宝支付键盘

第一次拿到这个需求,第一个想法,各种控件嵌套+监听 解决问题。后来想想,这么个东西用这么多控件有点大材小用了,于是就自定义了。 前沿:由于大部分程序员的特性以及工作性质都属于拿来主义者。特此说明,本文章只提供解决思路和关键性代码,不会附带全部代码。由于只是已Demo方式呈现,并不是一个成熟的自定义控件,好多属性都没有抽离出来,项目写死了。当然也好改。 第一步:构造。这个没什么可说的,在里面初始化

2017-06-03 16:30:33 1642

原创 使用Android Studio 执行多渠道打包

使用Gradle去构建多个包,每个包可以去对应不同的下载渠道,icon或者.so 适配平台的设置等。 先简单说一下Gradle android的配置defaultConfig { applicationId "com.xxx.xxx" minSdkVersion 15 targetSdkVersion 25 //versionCod

2017-03-22 14:07:50 290

原创 关于Gson解析异常:Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $

很明显,字面意思,Gson解析异常。 出现这个的原因多是Gson串不标准,甚至是返回乱码,这些都需要后台去处理。 我遇到这个问题遇到过2次。 第一次:网页测试都是好的,正常解析。我甚至找了好几个小时的程序代码。都没有找出问题来。当我把网页测试的json串,复制用GsonFromat去解析,发现这个串的前面多了2个不知名字符,我猜,应该是一个空格,导致解析检查出现问题。 第二次:服务端返回直接

2017-03-15 10:13:33 49179

原创 EditText 设置lines=1或者maxLines=1属性后 单机键盘上的回车键,依旧可以换行

这个bug停让人蛋疼的。我不知道这是谷歌sdk的bug还是我用的键盘软件的bug,反正,就是出来了。在最新的sdk明明已经将singleLine打上了过时标签,还是需要靠这个属性去设置。 吓得我赶紧去更新下键盘。

2017-02-22 17:15:08 2439 1

原创 TabLayout自己踩过的一些坑

TabLayout十分强大,特别是处理顶部导航的时候,几行代码就可以达到一个非常不错的效果,配置也相对简单,具体使用,此处不多讲,说说它与ViewPager联动的一些坑1、TabLayout有直接关联 ViewPager的方法 setupWithViewPager(),使用这个方法,必须要在ViewPager设置适配器之后。 2、添加tab 使用这个方法 mTabLayout.addTab(mT

2017-02-07 19:02:51 3626

原创 Android 之MVP模式

前言:如果童鞋对于接口回调,多态,泛型(这个很重要)不是特别熟练,或者不是特别了解,建议还是不要使用这种模式。先谢谢常规MVP练练手,等真正对这些知识能熟练掌握了再来学习MVP模式。这个架构用到了大量的接口,泛型。(基础很重要啊)使用MVP模式架构项目也有2个了。最新的项目原本想结合Dagger2去做(听说会让结构更加清晰)。不过在看了一上午Dagger2以后,我决定下个项目再集成,先把现有的MVP

2017-02-07 18:47:14 989

原创 IT开发人员都是些什么脾气(1)

我们搞开发的似乎跟别人性子都不一样。 就今天,一个客户想把一个10W的项目做成100W的效果,扣了一天特效,在销售给我反馈了几个后,我果断把混淆给去了。我都不知道我在干啥。

2017-01-12 17:42:46 1052 1

原创 微信小程序开发初体验

前言:作为一个Android开发人员来写微信小程序,可谓难,可谓易。微信小程序面世不久,官方提供的开发工具简直不能使用。好在,他貌似沿袭了 Html+CSS+JS的开发体系,下面整理下开发遇到的坑。(开发环境W10 MAC的关于软件的坑此处没有) 1、很多刚下载完开发工具的童鞋,半天找不到要在哪里写代码。此时你应该:把目光放到开发工具左下角,有个关闭,然后 点击添加项目。如果没有注册小程序开发账

2017-01-11 15:34:59 390

原创 Android 混淆的那些坑

如果有人要搞你的应用,你开心的去混淆了。其实那并没有什么卵用,我甚至听到过混淆后无法反编译的言论。现阶段,不如加固来的实在。能加固,就别混淆,混淆是一门技术,对于入行不久的人来说,这个工作要持续很长时间。 记录混淆遇到的坑: 在我的gradle里我debug模式也开启了混淆。在编译阶段测试而已,但是等到打包以后,整个项目就卡住了。由于是正式包看不到错误日志。。比较尴尬吧,完全凭借意念去解决问题。

2017-01-11 11:11:38 352

原创 Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.

这个问题比较纠结,懵B的原因是自己英语不好,翻译一下: 运行App错误,运行时需要 Tools–Android–Enable ADB integration被激活才可以。 解决思路 点击Tools下的Android 里面的Enable ADB integration 被勾选就可以了。出现原因,肯定是之前搞事情的时候误点了。

2017-01-05 09:28:18 241

原创 日常汇总

控件篇: (1)Banner github上的项目,感觉很不错。ViewPager 实现,集成了很多切换动效。 点我去项目主页 (该作者还有很多其他项目, 感兴趣的童鞋可以去看看)

2016-12-29 13:43:25 338

原创 Unexpected cast to TabLayout: layout tag was TableLayout

Android开发遇到的一个问题下面贴图 首先先说明一下开发环境:Android Studio 2.2.2 (刚升级,没用到这个版本的童鞋,赶紧升级去吧,好多黑科技),刚开始是蒙蒙的,从来没有遇到这个问题,然后就去查看布局文件 这个TableLayout 真的是坑哈,应该用的是TabLayout support.design库下的控件(你说这科技黑不,自动检验运行时异常?)改成TabLayou

2016-12-29 10:22:43 5613

原创 记录一些常用的易忘(偏门)的控件属性

1、TabLayout//改变选中字体的颜色app:tabSelectedTextColor="@android:color/holo_orange_light"//未选中字体的颜色app:tabTextColor="@color/colorPrimary"//指示器下标的颜色app:tabIndicatorColor="@android:color/holo_orange_light"/

2016-12-29 09:31:42 301

原创 退出界面,优雅的关闭软键盘。

最近有点时间,写点随笔吧。 之前在做这个功能的时候,百度出来的全是 1 2 3每条都很清晰,每篇文章几乎都一样(作为一个从业人员,我不喜欢这种方式)。 今天就简单介绍下,个人一点见解。理论出自于实践。 网上给出的这个方法,是很不错的。 /** * 手动隐藏键盘 */ public void hideSoftWindow() { InputMethod

2016-12-20 09:40:17 1758

原创 Class "xxx" is never used

今天项目中突然各种类出现了这个东西(我可以十分确定的是别处有引用) 项目里总共2处地方有这个问题,第一个地方 是我外层起的包名为 :interfaces 修改成myinterfaces后突然就好了。什么鬼? 还有一个地方是我的Application 。我随手起了一个 XApplication。清单文件的资源引用可以跳进来,可是点击这个XApplication 就给提示Class “xxx” i

2016-12-14 10:18:57 3901 2

原创 Android Studio 打开项目小知识

1、我们在每次开启之前都可以到选择面板去选择打开某一个项目: 开启方法,不做详细介绍了,百度百科很详细,点我去查看如何设置 2、昨天刚遇到的问题,打开项目以后,项目历史开启页面等信息都没有加载出来,空白一片,大概这个样子 重新启动了好多次,发现在开启的时候出现这个提示,由于启动速度过快,很容易忽略了。 出现一个loadsetting的错误,追踪下路径,于是就有了解决方案:在.idea

2016-12-09 09:33:49 795

原创 小米搞事情之----mimu8

首先,感谢小米。因为我从开始就用的红米2A,对我技术的成长有很大帮助,特别是对于功能的实现方式上,写的不好使很容易卡顿,闪退,ANR(昨天更新了MIMU8 微信闪退好几次才进去)。 慢慢整理这些坑吧。 1、昨天好好的应用,今天突然链接电脑安装不上了。请进入开发者选项–有个允许USB安装应用,这个功能是新添的吧,默认关闭,开启就好。

2016-12-08 11:34:20 569

原创 ViewPager与RadioGroup实现导航切换

前言:百度(谷歌)上已经有很多类似的例子了,为什么还会有这篇文章? 第一:我观察所有的文章都是在介绍原理,有的帖出了代码,对于新人来说,都是不错的教学案例,不过,有的人就是不会,就只想用(我同事,开发ios的,想搞安卓)。所以封装成一个控件了,直接用就行,支持大多数情况 第二:所有代码逻辑实现几乎都放在Activity,这种方式是我不喜欢的。Activity只负责展示就好,具体逻辑尽量不要放在A

2016-12-07 17:17:17 427 1

原创 SimpleDateFormat格式化long型时间,比真实时间多了8个小时

这个是朋友遇到的bug,后台返回一条long型数据,要转成 hh:mm:ss的格式,数据转换后正确数据大概在1:29:00上下浮动,可是他转出来的是9:29:00浮动,比想象中的正确时间多了9个小时。(后来我去百度,确实没百度到这方面的资料,也许是输入的方式不正确); 其实敏感的人都会隐约意识到,这多的8个小时有种似曾相识的感觉(北京的时区是东八区,世界大事记用的都是中时区时间,说白了,就是大家都

2016-12-05 13:17:03 9188

原创 Android 退出应用几种方式

虽说网上一百度一大堆,还是给自己整理整理。 1、也就是我最开始使用的。System.exit(0);此方法,在项目里,我是有遇到问题的,退出的时候不定时的会出现一些其他问题。 2、次方法比较粗暴,也是比较野的一个路子,ps:看到代码千万不要打我啊。private void killProgress() { throw new NullPointerException();

2016-12-03 10:14:45 296

原创 浅谈MD5加密,真的安全么?

从接触android开始就一直被灌输一个思想,MD5加密无法解密,是很安全的。并且实际情况也是很多http请求用的都是MD5加密。 从技术的角度讲,MD5真的很安全,因为无法解密,破解MD5的方式只有一个:撞库(我是不知道别的方式),然而,就在大数据的今天。我今天随意的生成了几个自己常用的密码的MD5密文,很恐怖,随意百度到的工具都给破解出来了。 所以,我相信,不久的将来,随着各种加密原文的收集

2016-11-28 17:17:33 5718 3

原创 android open failed: ENOENT (No such file or directory)

今天在做上传头像的时候遇到这个坑。(调试阶段,我的手机是好的,别的手机是坏的(坏手机是三星,坏透了)) 出现这种原因:首先要想到的是你自己创建了一级子目录,比如,我就创建了一级目录,用于存放项目图片,代码如下 if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {

2016-11-26 15:49:04 2617

原创 关于使用Glide的一点小坑

前言:Glide很强大,这个不用多说,谁用谁知道。 在实际项目中,我们的一些错误做法可能会辜负这个强大的图片加载库。 就比如:后台传的商品图片品质太差,用Glide缓存的时候会出现绿色背景,一顿百度谷歌之后,不少人给出了完美的解决思路:就是设置图片的解码格式 。从rgb-565—>rgb-8888。(如果不会自行百度,反正我是不建议) 之前首页图片少还没感到什么,但是自从有了个图片群的功能(全展

2016-11-02 18:07:03 3458

原创 Android 通用Adapter封装

从开始学习封装,就是仿照慕课网某视频学习的。这才过去半年,自己也有思路了,现在把我的封装代码贴出来,给初学者一点帮助吧。有任何问题,请联系我。/** * 描述:单布局适配器基类 * author SunXiaoGang * E-mail [email protected] * Created by SunXiaoGang on 16/9/23. */public abstra

2016-10-12 19:09:49 375

原创 关于各种框架加载图片的坑

今天在做这么一个功能,拍照,裁剪,上传。这本来是一个很简单的功能。但是却遇到了一个bug:那就是修改图片以后本地加载图片会有错误(无法覆盖)。起初是以为手机适配问题,先也没管。(跟后台联调了,发现图片是上传上去的,只是我本地显示有问题) 之前神来一笔,是动态改变图片名称,这个问题也得到了解决。 但是今天,我再整理Glide工具类的时候,突然发现了缓存这么一个东西,没错,是缓存。所有的图片加载框架

2016-10-10 18:16:25 313

原创 关于Android应用无法安装到手机问题

在Android开发中,我们在更新应用的时候,会遇到一种情况,就是安装过程一直很顺利,但是却安装失败了。 在笔者第一次遇到这种情况的时候也是一脸懵逼。直到有一次上传应用市场(具体哪个忘记了),给我提示提交版本不高于当前版本。看看我再gradle里面的配置,版本是不一样的。 其实不然,后来静下心来想想,然后去看了下谷歌的api。才瞬间明白,在配置版本信息的时候会有2个 内容需要填写 一个是ver

2016-10-09 19:22:53 1089

原创 关于页面跳转的坑

当我们使用startActivityForResult的时候,偶尔会出现这种情况,onActivityResult回调不走了(其实是走了,只是走的比较早)。笔者在出现这种情况的时候的原因是在 跳转的页面launchmode设置了singleTask启动模式,在跳转之后,直接调用onActivityResult回调。解决这种问题就是要解决 启动模式跟Fragment之间的回调问题。 具体项目根据具体

2016-09-29 16:52:14 262

原创 个人对移动App的看法

本人是Android开发工程师,做出一个功能强大,全面的App是一件非常自豪的事情。 但是,作为一个终端持有者,有些App我是有一些看法的。 现在的App市场,各种App恨不得把所有功能都集成在一起。我之前有一个项目就是,电商,聊天,社区,朋友圈。。。。。。只要是市面上有的,都想有。结果不言而喻,当初 App的定位只是社区和电商,后期接入广告。在我看来,一个App我用你,可能只是看准了一个功能。

2016-09-23 17:44:00 769

原创 Android ScrollView 嵌套ListView与GridView的最终解决方案

前言:(由于时间紧,这里只提供思路,和简单代码片段,如果是纯拿来主义,什么都不看就直接用,本文章是满足不了的)项目中难免会遇到ScrollView与ListView等控件的嵌套,而这些控件的嵌套会出现许多意想不到的问题。(以ListView为例) 问题一:我的ListView怎么只有一行? 问题二:当出现较复杂的页面的时候刷新适配器,如果你打印下log,你会震惊的发现,怎么会这样,怎么会这么卡。

2016-09-18 16:58:29 447 2

原创 Android开发注意事项--不定时更新

前言:自己开发中遇到的问题,解决思路,一些效果好的实现方式。此文章比较杂,会不定时更新。更新时间:自己有感悟了就来更新下。关于适配许多初级开发者,都不太理解 适配这个概念。 在我看来适配是分为两方面的 1、屏幕适配2、手机型号适配关于屏幕适配:android给了我们最终的解决方案,使用dp。但是有的时候也是有问题的,就比如一行展示的内容较多,例如 我这一行要展示 一个商品的 原

2016-09-07 10:41:10 415

原创 那些年,关于android集成微信的坑

集成了好多微信了,每次集成都是一个坑。接下来我就细数一下这些坑。第一点,请注意,我们是做android,对,微信有两个平台,一个是公众平台,一个是开放平台。没错,这是两个东西,千万不要混淆,我们集成android不管是登录分享还是支付或者其他也好,用的是 开放平台, 开放平台,开放平台。第二点,有些新人,第一次集成,看看文档,心里已经骂上了什么鬼,这是什么东西,代码部分我不说,直接一顿co

2016-08-31 10:04:16 352

原创 Android 注解以及Log模块

android注解框架与Log管理类

2016-08-29 18:58:51 927

原创 android 仿ios带弹簧效果的ScrollView

仿ios弹簧效果

2016-08-26 17:49:22 3045 3

原创 Android开发之--沉浸式状态栏

Android开发越来越多的用到沉浸式状态栏,记录下使用心得。首先:想使用沉浸式状态栏,必须要在4.4及以上系统。使用详情(以Activity 为例,FragmentActivity相同):if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); if

2016-08-04 19:07:40 707

Android ViewPager+RadioGroup 自定义控件示例

简单实用的实现上部导航,主页面导航等常规导航

2016-12-07

xUtils之注解与LogUtils模块

基于xutls单独抽出来的注解框架与Log管理类

2016-08-29

仿ios弹簧效果,带阻尼,和回弹渐慢动画

android 仿ios 弹簧效果,带阻尼

2016-08-26

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

TA关注的人

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