自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梁超杰

不积跬步无以至千里

原创 CSDN去广告插件

如果这篇博客被CSDN相关工作人员审核到,请你转告你们产品或者商务主管 庞大的程序员群体不是你们这些无耻商人的待宰羔羊 用csdn快3年了吧,写了200多篇博客,刚开始用的时候充满了期待,觉得这是一个能记录我成长的平台 但是随着广告的无孔不入我开始慢慢怀疑CSDN是不是下一个视觉中国!侵权不去...

2019-04-28 22:57:13

阅读数 228

评论数 0

原创 git不用每次输入用户名和密码

使用git pull或者git push每次都需要输入用户名和密码很不人性化,耽误时间,现在教大家一条命令实现保存用户名和密码不用再输入git config --global credential.helper storegit pull /git push (这里需要输入用户名和密码,以后就不用...

2017-06-27 16:42:26

阅读数 19021

评论数 11

原创 跟着源码写代码(一)

1 如果写一个判断输入的两个对象是否相等的方法你会怎么写? public boolean isEquals(Object o1, Object o2) { if (o1 == null) { if (o2 == null) { ...

2020-01-19 12:22:48

阅读数 16

评论数 0

原创 Android获取OAID

自己项目中遇到了一个获取oaid的需求,看了下该作者的demoAndroid获取OAID博客地址 感谢作者的同时自己也对这个demo进行了优化,结尾附上自己的项目github地址 1 什么是OAID?用来做什么的? 随着大数据和人工智能时代的到来,数据的价值也逐渐增加,移动终端设备标识码,如国际...

2019-12-24 23:26:33

阅读数 55

评论数 2

原创 使用SharedPreference保存序列化对象

Sp工具类里增加下面两个方法 1 SP_NAME 就是一个字符串,可以命名为"项目名_sp" 2 存储的对象一定要实现Serializable而不是Parceable,注意成员类也要实现Serializable public class ChildModeBean im...

2019-11-13 22:26:46

阅读数 10

评论数 0

原创 TextView优雅的加纤细的粗

最近ui找我说我们app有些字体加粗的太粗了,而ios就粗的很纤细。我去翻了翻我们android的代码,的确是按照系统加粗的方式来的 android:textStyle="bold" ui说的就是圣旨,于是我开始各种面向搜索编程,终于找到了解决办法 1 默认字体 2 纤...

2019-11-09 20:36:23

阅读数 102

评论数 0

原创 TextView点击某块区域跳转超链接富文本实现

先看效果 public class WebClickableSpan extends ClickableSpan { private String color = ""; private String url = ""; priva...

2019-11-09 16:25:25

阅读数 31

评论数 0

原创 EditText限制输入中文英文最长24个字符

需求: 昵称只可以输入数字,字母,汉字,最长24个字符长度,1个汉字占用2个字符 可以简单的理解: 最多12个汉字(因为一个汉字就是2个字符了,最长才24个字符) 24=汉字*2+字母+数字 必然是对EditText进行一番操作了 public class ChineseInputFilt...

2019-11-09 16:05:30

阅读数 25

评论数 0

原创 AIDL的入门使用

进程间通信的话需要两个进程(这不是废话?),那么就需要一个扮演服务的角色,一个扮演使用的角色,我们称前者为Service app 后者称为 Client app,弄清楚了这一点,下面开始正式的使用aidl。 目标:Client可以获取Service中的数据 AIDL学习 github地址...

2019-10-27 17:52:29

阅读数 48

评论数 0

原创 Android拍照上传,相册选取图片裁剪可自定义UI

github 上面一大堆这样的拍照上传相册选取开源库,为什么我还想写这篇博客呢? 我们看到微信的相册选取或者知乎开源的相册选取和其他的应用不同,他们的相册选取页面反而显得很美感,但是开源库的就很丑或者达不到UI原型图的效果了,那么就需要我们 自定义UI 拍照上传,相册选取图片裁剪,支持自定义U...

2019-10-24 23:48:18

阅读数 20

评论数 0

原创 Android防止快速重复点击请注意~

一般我们项目中都会有一个工具方法是用来防止按钮重复点击的: private static long lastClickTime; private static final int DISTANCE_TIME = 1000;//两次点击时间间隔 public static boolean isFa...

2019-10-08 22:21:59

阅读数 25

评论数 0

原创 android动态设置view高度或者宽度

一般的话我们都不需要动态设置view高度的,为什么有这个需求呢?更多是来自UI妹子们,比如下面这张图 (图一) UI想让banner底部距离背景高度是固定的,这样的话可以让在各种手机上看起来banner间距很完美,这样的话问题来了 背景图是主fragment里面layout的view,banne...

2019-09-30 10:26:48

阅读数 974

评论数 2

原创 两个view相同十六进制色值但是透明度不一样可以显示出来二者吗?

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&qu...

2019-09-18 23:13:27

阅读数 14

评论数 0

原创 ViewPager设置setAdapter不会重新创建Fragment的问题

刚开始一顿面向谷歌编程,各种网友提供的思路都试了一遍发现都无效,最后找到了下面这篇博客终于解决我的问题 解决ViewPager展示Fragment时重新设置setAdapter不会重置Fragment的bug 我遇到的问题: 创建了新的fragment也设置了setAdapter但是结果还是出现...

2019-09-09 21:47:11

阅读数 340

评论数 0

原创 美团多渠道打包神器——walle

美团新一代渠道包打包神器walle github地址 walle取自《机器人总动员》中的瓦力,一个孤独的机器人。 由于我之前负责的项目都是属于代码方面,从来没有负责过打渠道包,所以一直不曾使用过这个神器,直到最近项目要接入而我又恰巧负责。在上家公司的时候打渠道包要打14,5个渠道吧,我们一个apk...

2019-08-13 21:58:10

阅读数 426

评论数 6

原创 setTextColor设置颜色失效

这个问题出在: tvText.setTextColor(R.color.***) 这里的int 值不是资源id而是一个十六进制的值 改成下面即可 tvText.setTextColor(ContextCompat.getColor(this,R.color.colorAccent...

2019-08-13 21:19:07

阅读数 381

评论数 0

原创 Mac OS 卸载JDK 12

cherrydeMacBook-Pro:~ xmly$ cd /Library/Java/JavaVirtualMachines/ cherrydeMacBook-Pro:JavaVirtualMachines xmly$ ls jdk-12.0.2.jdk jdk1.8.0_221.jdk c...

2019-08-01 17:40:28

阅读数 238

评论数 0

原创 Java基础361问13问——反射可以修改常量吗?

利用反射修改final数据域 这篇博客很好建议看看,虽然可以修改final修饰的常量但是无法修改static final修饰的常量,否则爆java.lang.IllegalAccessException: Can not set static final java.lang.String 异常 p...

2019-06-27 22:48:56

阅读数 48

评论数 0

原创 事件分发机制再探秘

LinearLayout里面放一个Button <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andr...

2019-06-27 17:15:21

阅读数 46

评论数 0

原创 函数返回相同概率问题

我觉得这个问题不是考察面试者的coding的,而是考察脑筋急转弯。 给定一个函数f(),如果返回0的概率是p,返回1的概率是1-p (p是0到1之间的数), 如何根据f()函数构造一个g()函数使得其返回0或者1的概率都是50%? 如果是第一次接触这个题目的话估计不知道从何下手,本来那种不知道...

2019-06-25 23:33:10

阅读数 124

评论数 2

原创 Java用数组实现一个栈结构

写在前面 这是瓜子二手车面试的第一道题目,如果之前没有手写过的话可能很晕,没错我就是这么晕,后来再仔细想想这个代码真的感觉自己面试尤其是算法题还是紧张,紧张到大脑短路,大脑一团浆糊但是自己的所谓结论就张口就来,面试官不怕你说错但是不希望看到你不经过大脑认真考虑瞎说瞎猜,特此记录一下这个面试题 ...

2019-06-25 23:08:27

阅读数 518

评论数 0

转载 [转载]不可不说的Java“锁”事

美团技术大牛分享,仔细看下来确实受益匪浅 不可不说的Java“锁”事 第一遍看是不知道在说啥,第二遍看知道了是在说明java中的锁的种类但是记不清,三遍四遍就可以大概记住常见的锁的概念。 ...

2019-06-24 21:39:55

阅读数 59

评论数 0

原创 Java基础361问12问——Math.floor Math.round Math.ceil方法区别

floor翻译成地板,ceil翻译成天花板,我们可以理解为地板就是朝下取整,天花板是向上取整数 Math.floor结果是double类型,结果向下取整 System.out.println(Math.floor(11.50)); System.out.printl...

2019-06-24 14:12:11

阅读数 45

评论数 0

原创 setContentView白话

浅谈Activity从建立到显示(setContentView源码浅析) 感谢上篇博客的启发,本博客是基于android 9.0 AppCompatActivity @Override public void setContentView(@LayoutRes int layoutResID) {...

2019-06-18 22:44:17

阅读数 26

评论数 0

原创 Drawable整理

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> ...

2019-06-13 17:06:41

阅读数 16

评论数 0

原创 Java基础361问11问——Queue

很早之前我写过一篇博客用来分析LinkedList Collection源码之路(2)——LinkedList 那个时候提到了LinkedList实现了Deque接口,Deque其实就是在Queue的基础上增加了一些方法变成了可以操作两端的队列,那就让我们在这篇博客里面聊聊这个Queue吧 pub...

2019-06-07 16:33:36

阅读数 33

评论数 0

原创 Java基础361问10问——i++和++i哪个效率高

++i效率更高,因为i++需要产生一个临时变量浪费一定的时间,而++i不会 java代码如下: public class Main { public static void main(String[] args) { Integer a = 0; int ...

2019-05-29 22:28:23

阅读数 55

评论数 0

原创 从MotionEvent再次理解事件分发机制

很多博客都讲了事件分发机制,这篇博客来测试下点击事件的MotioEvent是如何传递的 首先我们的布局比较简单,最外层红色的是ParentView,里面灰绿色的是ChildView xml布局代码如下: <?xml version="1.0" encoding="...

2019-05-27 20:53:55

阅读数 63

评论数 0

原创 再学一遍Activity和Fragment生命周期

虽说我们开发用过很多次Fragment和Activity但是我到现在对有些生命周期还是懵逼中,所以这篇博客的目的就是自己写一个测试项目测试下到底生命周期是如何发挥作用的呢? private void initView() { ParamFragment paramFragment ...

2019-05-25 21:27:53

阅读数 26

评论数 0

原创 手动收回应用权限对android app的影响

在android开发中不可避免的要申请一些权限,用户允许之后就可以酣畅淋漓使用我们的app了 可是如果用户在使用app期间,将app至于后台去应用设置页面禁止了app的权限,那么这个时候将app恢复到前台会发生什么呢? 先说结论吧: 1 app进程被杀死并重启一个新的进程 既然是重启一个新的进...

2019-05-15 16:49:39

阅读数 243

评论数 0

原创 Activity和Fragment通信遇到的坑——为什么要用setArguments方法?

在很早的版本Studio中是可以写如下的代码的 public ParamFragment() { } public ParamFragment(int type) { } 也就意味着你可以通过构造方法传递参数进来,后来studio禁止了这种写法 在Android stu...

2019-04-28 22:39:02

阅读数 279

评论数 0

原创 Java基础361问10问——String.intern方法

public static void main(String[] args) { String s1 = new StringBuilder("ja").append("va").toString(); show(s1.in...

2019-04-22 08:20:23

阅读数 43

评论数 0

原创 使用注解代替枚举

原文链接:如何在Android中避免创建不必要的对象 相关的注解为IntDef和StringDef public class AppConstant { public static final int AWAIT = 0; public static final int ING...

2019-04-17 10:55:39

阅读数 218

评论数 0

原创 ImageView图片加圆角

1 android:scaleType=“fitXY” 2 设置圆角 public static void loadRoundImage(final Context context, final int cornerRadius, String url,int resId,final ImageV...

2019-03-22 21:24:15

阅读数 655

评论数 0

原创 白话设计模式第3篇——责任链模式

可以理解为生产线生产货品,第一个工人上螺丝,第二个工人喷漆,第三个工人装箱。。 经历了N个工人的努力最后把产品交付生产出来。 我们要对数据进行处理 1 先把数据乘以10 2 把1的结果乘以5 public interface Interceptor { public int proces...

2019-03-17 00:08:33

阅读数 87

评论数 0

原创 Java基础361问9问——位运算

我们查看源代码的时候总会看一些位运算符号,由于位运算比乘除运算更加高效,所以了解位运算可以帮助我更好地解决一些算法的问题。 按位与 &amp; (类似逻辑运算符 &amp;&amp;) 按位或 | (类似逻辑运算符||) 按位异或 ^ (可以理解为两个数...

2019-03-13 23:25:10

阅读数 36

评论数 0

原创 javap命令对代码进行反汇编

java中有些代码我们无法通过源代码获取执行的逻辑,比如下面定义两个整数,我们发现Integer类中并没有这样定义的方法,但是java却可以这样定义,难免猜想中间做了什么操作但是我们又不知道 public class Main { public static void main(Strin...

2019-03-11 09:32:52

阅读数 113

评论数 0

原创 Java基础361问8问——阻塞队列的原理

我们知道线程池是靠阻塞队列实现的,那么这个阻塞队列是具体如何实现阻塞的呢? 说到阻塞我们能想到线程的sleep和wait方法,seep是让线程睡眠若干秒再去执行,而wait是让线程休眠如果不通知线程恢复,那么线程将一直休眠下去不进行任何操作。 所以我们想到的一个办法是通过wait和notify方法...

2019-02-28 22:04:34

阅读数 39

评论数 0

原创 Java基础361问第7问——链表逆序

首先构造一个Node节点结构 public class Node { public Node next; public int age; } 接着我们初始化这个链表 Node head=null,p=null;//head表示头结点,一般不要轻易修改 ...

2019-02-27 23:12:34

阅读数 38

评论数 0

原创 Java基础361问第6问——重载和重写的区别

首先说二者的相同点: 方法名相同 重写时,方法具有完全相同的参数 重载时,方法具有不同的参数(个数,类型或者顺序) 下面这个方法为原方法 public int getAge(int a){ return 1; } 1 不同的参数个数 public int getAge...

2019-02-19 21:37:08

阅读数 55

评论数 0

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