自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MapleShao

Android 攻城狮

  • 博客(51)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 [几何] 计算任意多边形的面积、中心、重心

最近项目用到:在不规则任意多边形的中心点加一个图标。(e.g: xx地区发生暴雪,暴雪区域是多边形,给多边形中心加一个暴雪的图标)之前的设计是,计算不规则多边形范围矩形bounds的中心点。这个比较简单,对于一些圆,矩形,凸多边形都比较适合。但是遇到凹多边形就会出现问题,比如一个月牙型的不规则多边形,bounds的中心点,就落到月牙外了。就有点难以接受了。经过讨论,决定将中心改为重心。...

2016-12-15 16:17:31 35719 32

原创 [几何] 判断点是否在任意多边形内

最近项目用到:在Google map上判断事发地点,是否在管辖区域内。也就是典型的判断一个点是否在不规则任意多边形内的例子。但是Google Map没有提供相应的api,找资料发现百度地图提供了一个工具类,肿么办,为了一个工具类,加入百度地图吗,操蛋,这是不可能的!百度地图api链接:http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/v3_7_......

2016-05-26 09:55:16 12136 36

原创 2019 Google Developer Days

2019 Google Developer Days本文为2019 Google Developer Days大会内容总结。详情可参阅官网.AndroidAndroid 10新特性系统级暗黑模式详细信息请查看官网 https://developer.android.com/guide/topics/ui/look-and-feel/darktheme通知中的智能回复...

2019-09-25 11:26:45 408

原创 [算法] 二叉树的层级遍历

二叉树的层级遍历解题思路:队列(先进先出)先将根结点 add插入到队列中。开启循环,poll取出头部结点,将该结点的左右孩子 add插入到队列尾部。每次循环为二叉树的一层。用左右孩子结点替换父亲结点。待队列为空,循环截止,遍历完整个二叉树。Tals is cheap, Show me the code.Java Code class TreeNode { ...

2019-08-18 14:11:05 380

原创 [算法] 两个质数的乘积是707829217,求解该质数

记录一次有趣的算法题。土生土长的北京妞儿,在胡同里长大,房不多,就一个四合院和近郊的别墅。不算美如天仙但还算标致,在清华读的经管,现在在做基金经理(不想被人肉,就不暴露单位啦) ,个人擅长基本面分析,价值投资。现在只想找个聪明靠谱的IT男。硬性要求是年龄,不要超过88年,还有不要特别矮或胖。我对智商的要求比较高,下面就出个题测试下。我的微信ID是大写字母NY后面跟着两个质数,大的在前,小的在...

2019-04-12 15:34:19 20355 10

原创 Android冷启动详解

Android冷启动详解冷启动:热启动:APP冷启动详解冷启动优化本文主要讲Android app 冷、热启动流程,已经启动优化。冷启动:当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就叫做冷启动(后台不存在该应用进程)。冷启动因为系统会重新创建一个新的进程分配给它,所以会先创建和初始化Application类,再创建和初始化MainActiv...

2019-03-21 10:08:33 2571 1

原创 [控件] 高仿iOS样式Dialog

    由于android各个版本的系统Dialog样式都不一样,并且也不是特别好看,所以这里自己定制一套高仿iOS样式的android Dialog。让自己的代码具备两个平台的风格,并可以自由切换。 快速使用:Step 1. Add it in your root build.gradle at the end of repositories:allprojects {...

2018-03-21 18:18:32 750

原创 Android DrawerLayout 和ViewPager滑动冲突解决

最近遇到项目整体是Activity搭配DrawerLayout的抽屉样式,在左侧抽屉的顶部,有一个ViewPager无限轮播。并要求ViewPager左滑下一页,右滑上一页,3秒自动轮播下一页,点击按住停止轮播。同时DrawerLayout的NavigationMenuView左滑打开,右滑关闭。滑动事件同时存在,手指滑动头部区域ViewPager响应,滑动其他区域DrawerLayout打开or...

2017-03-07 18:39:27 2323 1

原创 localytics的使用

最近公司在更换app分析软件,来收集每个功能的使用频率。之前用的fabric,但是fabric只能精确到天,领导层希望能精确到小时。此时,Localytics 就闪亮登场了。Localytics官网: https://dashboard.localytics.com其实Localytics还有很多功能。本文只说Events功能。也就是在程序中埋点,来监听某些方法

2017-02-21 13:58:38 1277

原创 android中创建带数字的自定义bitmap

在开发中可能需要用到一些带数字的drawable图片,比如从0-99,此时让UI挨个给图,就很没有必要了。资源文件也会爆棚。此时就需要我们用代码自定义drawable图片来。先看效果:上代码:package com.everbridge.xxx.util;import android.graphics.Bitmap;import andro

2016-11-16 16:50:25 2177 4

原创 Google map获取手机屏幕当前显示地图的范围

在开发时,可能用到手机屏幕当前显示Google map的显示范围,也就是显示矩形四个顶点,怎么获取那?系统有提供的方法:VisibleRegionhttps://developers.google.com/android/reference/com/google/android/gms/maps/model/VisibleRegion

2016-09-22 18:21:21 2613

原创 Google map根据经纬度获取地址信息

Google map经纬度解析http://stackoverflow.com/questions/9409195/how-to-get-complete-address-from-latitude-and-longitude Google map 根据指定经纬度解析出可读的地址信息,也就是地址解码了,主要使用 Geocoder。 需要借助两个类Geocoder和Address,可点击查看

2016-08-23 16:14:31 13382

原创 解决Google map在手机上debug版本可用,release版本不可用的问题

问题描述:在做Google map开发时,在android studio 上debug调试时可以正常使用,但是发布release版本时却不可用了。根本原因是使用的keystore不一样了,debug模式下调试app,使用的系统默认的debug.keystore。release模式下出包时,使用的是自己设定的keystore。在Google map

2016-08-01 15:40:38 1720 1

原创 Mac下获取android studio keystore的SHA1和MD5

在Android studio中打开Terminal工具、获取 debug.keystore 的SHA1、MD5:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android获取其他 ke

2016-08-01 15:09:43 5909 1

原创 [工具]Mac电脑如何直接管理安卓手机内存文件

之前用windows时,管理android手机内存卡,拷贝个图片应用啥的比较简单。转战Mac之后,找了半天没找到如何管理手机内存文件。现在终于给找到好东西了,在Mac上直接就能打开手机内存卡。比用windows还简单。Android File Transfer-官网:http://www.android.com/filetransfer/使用:1、用USB连接手机到MA

2016-06-12 17:31:54 10801

原创 [几何]判断两个线段是否相交(多语言实现)

 本文主要讲怎么判断两个线段是否相交 参考博客:http://www.geeksforgeeks.org/check-if-two-given-line-segments-intersect/http://www.cise.ufl.edu/~sitharam/COURSES/CG/kreveldintrolinesegment.pdfhttp://geomalgorithm...

2016-05-24 11:38:33 3444

原创 在Genymotion虚拟机上安装Google Apps

Genymotion 来自于 AndroVM 这个开源项目,基于 x86 和 VirtualBox,支持 OpenGL 加速,可以用于 Mac / Win / Linux 。然而最近发布的新版,新增了拖拽安装 apk功能,但是移除了 Google 市场。导致运行带有Google map 之类应用时提示下载安装不在赘述,只解决Genymotion模拟器不支持谷歌服务问题:

2016-05-11 16:06:56 6675

原创 Android Studio中如何打JAR包

Android Studio中如何打JAR包Android Studio中对于library类型的Moudle,默认打出来的是AAR包,但有时候我们的SDK还需要共享给一些其他eclipse的项目使用,这样我们就需要输出JAR包,可以通过在Moudle中的build.gradle加入task来实现。makeJar.dependsOn(build)task make

2016-05-04 16:43:18 767

原创 Android Studio 使用技巧

本文为综合版,实现windows与Mac结合对照。快捷键:ActionWin/LinuxMac OSX注释代码(//)Ctrl + /Cmd + /注释代码(/**/)Ctrl + Shift + /Cmd + Option + /格式

2016-04-08 10:17:07 3252 1

原创 service中获取sharedpreferences数据不同步

 在某个地方通过context获取sharedpreferences对象,并进行存储数据后,在Activity中获取的sharedpreferences存储数据和在Service中获取的sharedpreferences存储数据不一致! 分析:在getSharedPreferences的时候mode使用的是MODE_PRIVATE,这种mode不支持Activity跟Servi...

2016-04-01 20:37:18 3317 1

原创 GitHub 上排名前 100 的 Android 开源库介绍

项目名称项目简介1. react-native这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, 该框架结合了 Web 应用和 Native 应用的优势, 可以使用 JavaScript 来开发 iOS 和 Android 原生应用2.Androi

2016-03-11 12:00:55 1569

翻译 给未来程序员的15个顶级职业建议

原文作者:Gayle Laakmann McDowellGayle Laakmann McDowell, Born and Raised as Myself113.2k Views · Upvoted by Herbert Lee, Software Engineer at Striiv and Hossam Ghareeb, 3 years

2016-03-11 11:50:58 3080 6

原创 解决Aanroid加载so库失败:java.lang.UnsatisfiedLinkError

在做项目的时候,经常使用到.so文件。有时明明在libs/armeabi目录下添加了对应的libgif.so文件,也在代码中调用了System.loadLibrary("gif");却报错:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/co

2016-03-01 11:53:11 26186 8

原创 为Android Studio 项目手动下载gradle

在网上下载的例子,导入Android Studio的时候,第一件事就是下载项目对应版本的gradle。gradle是一个主要面向Java应用的build工具,类似于大家熟知的eclipse下的Ant,但比Ant高级。Andriod Studio下载gradle的过程很慢,在运行./studio.sh的终端中可以看见进度:把终端中的网址复制下来,在浏览器中

2016-02-22 18:06:02 3032

原创 Android开发3D界面

trgepackage com.test.util; import com.dooya.activity.R; import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;imp

2016-01-27 18:05:05 1309

原创 PopupWindow上弹出另一个PopupWindow报异常解决办法

在做项目中用到在一个PopupWindow上点击某个按钮弹出另一个PopupWindow的功能。但是缺报错了:android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRoot$W@44ef1b68 is not valid; is your activi

2016-01-27 17:57:14 3303 4

原创 横竖屏切换问题

一、禁止横竖屏转换Android横竖屏切换在手机开发中比较常见,很多软件在开发过程中为了避免横竖屏切换时引发不必要的麻烦,通常禁止掉横竖屏的切换,通过在AndroidManifest.xml中设置activity中的android:screenOrientation属性值来实现。比如下列设置android:screenOrientation="portrait"//

2016-01-19 11:24:27 1085

原创 商城app_购物车

最近的项目,用到了商城系统,现在把购物车模块抽取一下,搞个Demo先看效果:

2015-12-31 13:45:42 1292

原创 打开和关闭蓝牙设备

在Android中,与蓝牙有关的类和接口在 android.bluetooth  包中。其中BluetoothAdapter是蓝牙中的核心类,代表本地的蓝牙适配器设备。BluetoothAdapter类让用户能执行基本的蓝牙任务。当我们使用蓝牙时会先判断当前手机是否打开了蓝牙,然后在进行相应的处理。简单来看蓝牙的开启和关闭:public class

2015-12-29 10:34:03 1277

原创 王师傅卖鞋进价30元甩卖20元,问亏多少的问题解析

今天中午看人发了一个小题目,兴趣突来,就算了算,先看题目: 王师傅是卖鞋的,一双鞋进价30元甩卖20元,顾客来买鞋给了张50,王师傅没零钱,于是找邻居换了50元。 事后邻居发现钱是假的,王师傅又赔了邻居50。请问王师傅一共亏了多少? (这道题目不简单,100个人有99人会算错)整理一下数据流 // 正常交易 【大骗子】给【王师傅】假50 【王师傅】给【好邻居】假

2015-12-18 14:12:14 6552

原创 分段式RadioGroup

最近项目有个单选按钮,不过比开关多一个选项, 单选按钮,分一选一,二选一,三选一,四选一。。。。一选一,用CheckBox。 见我另一片博:http://blog.csdn.net/shao941122/article/details/49333139 二选一,用开关按钮 多选一,就用这个分段式RadioGroup了先看效果,后看代码有些大神已经看出来了,这个改写的GitHub上的项目。

2015-12-16 11:56:51 800

原创 QQ第三方登陆-极简版

最近用到QQ第三方登陆,其实仅仅对于第三方登陆而言,用到的东西不多,也就是简化用户注册的烦恼而已。就搞个超级简化版吧,代码不多,几百行而已。先看效果,再看代码          主函数:package com.maple.login;import org.json.JSONException;import org.json.JSONObject;i

2015-12-15 11:54:42 1519

转载 10+年程序员总结的20+条经验教训

开发  1.从小事做起,然后再扩展  无论是创建一个新的系统,还是添加功能到现有的系统中,我总是从一个简单到几乎没有任何所需功能的版本启动,然后再一步一步地解决问题,直到满意为止。我从来没有妄想过能够一步登天。相反,我一边开发一边学习,同时新掌握的信息还可以用于解决方案中。  我很喜欢John Gall的这句话:“复杂系统总是源于简单系统的演化。”  2.一次只改变

2015-11-18 17:41:51 738

原创 Fragment 点击穿透 解决办法

在做项目,用activity+fragment 填充视图时,发现有些Fragment会存在点击穿透效果(就是底层的Fragment可以响应上层的触摸以及点击事件)但是当填充的Fragment的跟布局是ScrollView时就不会有这种现象。比如:当我们建立一个fragment A的时候需要点击跳转到fragment B中,为了返回时不重新加载fragment A所以我们会使

2015-11-10 14:06:11 2883

原创 Android 手机短信误删恢复

今天手贱把手机短信全选清空了,一秒后反应过来,有个通知开会的短信,入场需要二维码,而个人二维码连接在短信中。悲催。。。        既然是学计算机的,就恢复一下吧,记得挺简单的,但是老久没做了,现在总结一下        共两步:        1. 手机Root。        针对不同的手机,大家自己去ROOT,         2.查

2015-11-02 11:57:27 1402

原创 自定义checkbox 样式

有些时候需要根据项目需求自定义CheckBox 的样式,步骤如下:1.首先在drawable文件夹中添加drawable文件my_checkbox.xml 2.在values文件夹下的styles.xml文件中添加CustomCheckboxTheme样式 @drawable

2015-10-22 14:29:53 806

原创 [工具]asm.jar一款手机真机屏幕同步抓取软件

1 简介    Android Screen Monitor(asm.jar)一款同步手机真机屏幕到PC上的软件(屏幕实时抓取,有点小卡)2 开源地址    http://code.google.com/p/android-screen-monitor/3 使用步骤① 通过USB将你的手机连接到电脑② 将asm.jar文件拷贝到你的android

2015-10-12 18:01:59 1822 1

原创 Android实现拨打电话的两种方式

拨打电话需要添加权限:代码: /** * 拨打电话 */ private void callPhone() { // 1. 到了拨号界面,但是实际的拨号是由用户点击实现的。 Intent intent = new Intent(Intent.ACTION_DIAL); // 2. 对用户没有提示,直接拨打电话 // Intent inten

2015-10-08 18:10:40 2288

原创 带有分割线的GridView九宫格的完美实现

今天我们来模仿一下支付宝钱包首页中带有分割线的GridView,俗称九宫格。先上图,是你想要的效果么?如果是请继续往下看。                                                                   我们都知道ListView设置分割线是非常容易的,设置ListView的分割线颜色和宽度,只需要在布局中定义android:di

2015-09-15 11:16:07 1749

原创 纯音测听——实现定制固定分贝、频率的纯音

 近期搞了一个纯音测听,所谓纯音测听就是医学领域测双耳听力最小听力的一种检测方法。需求是在Android手机端搞,但是有没有提供固定频率和分贝的声音。所以声音源方面是代码生成。 那么问题来了。如何用代码生成指定分贝和频率的纯音那? 这就要追寻声音的本源了。生活中我们听到的声音是一系列不同频率不同分贝声音的组合体。这里可以成为复合音,而测试需要使用纯音,所谓纯音就是固定频率的声波...

2015-09-09 10:13:45 6993 7

深入探索Android热修复技术原理

全方位系统介绍热修复原理书籍,从阿里Sophix方案开发过程入手权威解读。 第一章,热修复技术介绍 第二章,代码热修复技术 第三章,资源热修复技术 第四章,SO库热修复技术 第五章,热修复未来展望

2019-02-25

Kotlin 语⾔⽂档

使⽤ Kotlin 进⾏ Android 开发 Kotlin ⾮常适合开发 Android 应⽤程序,将现代语⾔的所有优势带⼊ Android 平台⽽不会引⼊任何新的限制: — 兼容性:Kotlin 与 JDK 6 完全兼容,保障了 Kotlin 应⽤程序可以在较旧的 Android 设备上运⾏⽽⽆任何问题。Kotlin ⼯具在 Android Studio 中会完 全⽀持,并且兼容 Android 构建系统。 — 性能:由于⾮常相似的字节码结构,Kotlin 应⽤程序的运⾏速度与 Java 类似。随着 Kotlin 对内联函数的⽀持,使⽤ lambda 表达式的代码通常⽐⽤ Java 写的代码运⾏得更快。 — 互操作性:Kotlin 可与 Java 进⾏ 100% 的互操作,允许在 Kotlin 应⽤程序中使⽤所有现有的 Android 库 。这包括注解处理,所以数据绑定与 Dagger 也是⼀样。 — 占⽤:Kotlin 具有⾮常紧凑的运⾏时库,可以通过使⽤ ProGuard 进⼀步减少。在实际应⽤程序中,Kotlin 运⾏时只增加⼏百个⽅法以及 .apk ⽂件 不到 100K ⼤⼩。 — 编译时⻓:Kotlin ⽀持⾼效的增量编译,所以对于清理构建会有额外的开销,增量构建通常与 Java ⼀样快或者更快。 — 学习曲线:对于 Java 开发⼈员,Kotlin ⼊⻔很容易。包含在 Kotlin 插件中的⾃动 Java 到 Kotlin 的转换器有助于迈出第⼀步。Kotlin ⼼印 通过⼀系 列互动练习提供了语⾔主要功能的指南。

2019-02-25

Genymotion-ARM-Translation_v1.1.zip

Genymotion-ARM-Translation_v1.1.zip

2016-05-11

分段式RadioGroup

分段式RadioGroup,详细见博客:http://blog.csdn.net/shao941122/article/details/50326013

2015-12-17

QQ第三方登陆【20151215】

简易版QQ第三方登陆,实现登陆,注销功能; 获取头像,网名,性别,城市,杂七杂八的东西

2015-12-15

雷霆战机-雷电源码

价值100W的游戏源码。实实在在的源码。代码注释良好。通俗易懂。

2015-07-30

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

TA关注的人

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