
android
文章平均质量分 69
水月沐风
千里之行,始于足下。
展开
-
Android基于高德地图实现搜索框的自动输入提示功能
最近公司项目中一直在搞地图开发,今天产品经理就给我布置了一些(无法想象)任务,其中一个就是实现地点搜索输入框的自动输入提示功能。拿到任务肯定想讨价还价一番,但是想到以前也写过,就不再负隅顽抗了。 以前在学校的时候实现过类似功能,是使用高德自带的InputtipsListener来实现的,想了解可以看看:文章传送点,这里就不详细介绍了。作为一名头脑发热的开发者,肯定不能安于现状,这里主要介绍其他原创 2017-09-25 09:14:03 · 10619 阅读 · 4 评论 -
Android 高德地图获取屏幕中心的经纬度坐标
最近项目在搞一个需求- 实现滑动地图实时刷新屏幕中心icon的附近数据.这种需求较为常见,ofo以及摩拜单车等都采用该方式获取屏幕中心的附近车辆数据.主要的实现就是将屏幕上的像素点转换为实际的经纬度坐标,核心代码如下所示:/** * by moos on 2017/09/05 * func:获取屏幕中心的经纬度坐标 * @return */原创 2017-09-09 22:21:43 · 9107 阅读 · 2 评论 -
Android 高德地图上显示videoview被覆盖的问题
最近需要在高德地图上开发部分视频功能,用的是Android原生的videoview,但是却发现一个问题:界面存在高德地图后,videoview会被地图UI覆盖掉,通过查找资料发现:原来videoview与map控件本质都是surfaceView,所以发生了重叠现象. 解决方法如下: 只需要给VideoView设置setZOrderMediaOverlay(true)即可.但原创 2017-09-09 22:33:16 · 1716 阅读 · 1 评论 -
Android项目中调起手机地图导航
现在,移动应用中集成地图已经成为一种趋势。导航 - 作为地图中不可或缺的一项功能,被很多移动应用所青睐,然而,导航方式选择上,为了减少不必要的资源和apk容量,一般应用都选择通过调用第三方的地图应用来实现导航功能。在介绍之前,先看一下最终效果: 本文主要提供几种常用的调起三方地图应用的导航平台,以高德,百度,腾讯,谷歌地图为例。 地图平台 Uri文档 高德地图 http:原创 2017-09-19 16:57:21 · 3255 阅读 · 0 评论 -
android studio gradle构建出错
今天遇到一个比较坑的问题:打开android studio后发现build出错:Error:(4, 0) Cause: startup failed:build file '/Users/wyj/Timeory_Android/Timeory/app/build.gradle': 4: illegal rule @ line 4, column 5. def signCon原创 2017-09-21 19:02:20 · 3504 阅读 · 1 评论 -
Recyclerview滚动实现隐藏和显示悬浮按钮
前言:最近项目用到很多Recyclerview方面的知识,例如复杂列表布局的显示,瀑布流数据展示,商品列表的刷新和分页加载,列表右下方的悬浮按钮随着列表滚动方式来显示和隐藏等等。此处主要记录一下悬浮按钮随着recyclerview滑动而显示与隐藏(即下拉隐藏,上拉显示)。一般有两种常用方式:1.通过FAB(FloatingActionButton)的layout_behavior属性来为其设置相应原创 2017-10-29 11:26:51 · 4326 阅读 · 0 评论 -
Android实现fragment向Activity实时传递信息
平时,我们的项目中会经常用到fragment这个控件,一般情况下,我们将数据放在fragment里,而大部分UI在activity中,如果需要在数据改变时实时刷新我们的UI,那么就要用到framgent与Activity数据的传递了。 常用的一般有三种方式来实现以上需求:1. 通过fragment中brocastReceiver来通知activity刷新UI;2. 通过ev原创 2017-10-23 14:29:38 · 5669 阅读 · 3 评论 -
Attempt to invoke virtual method 'android.os.IBinder android.view.View.getWindowToken()' on a null o
今天,做公司项目遇到一个比较另类的空指针异常,看样子是我之前遇到过,但是竟然没有记录下来,没办法,仔细检查一番后终于发现问题所在.错误信息:java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.IBinder android.view.View.getWindowToken()' on a nu原创 2017-10-25 15:27:52 · 9968 阅读 · 0 评论 -
Android当前应用跳转到三方应用
今天,需要按照产品说的在当前的应用中增加一个入口,用来跳转到另外一个应用,没有就自动前往应用商店下载,需要有第三方应用的bao'ming废话不多说,直接上代码:if(isApplicationInstall("第三方app包名")){ //直接进入 loge("已安装!"); PackageManager packageManager = getPackageMan原创 2017-11-28 16:14:16 · 1437 阅读 · 0 评论 -
android获取并显示camera拍摄或者本地图库的照片
最近项目在搞用户图片上传功能,要从本地选择图片或者camera拍摄的图片显示预览并上传,之前为了方便一直想着用别人的轮子来造车,结果各种问题,要么应用崩溃,要么适配性极差,最后没办法,只能返璞归真,使用系统提供的方式来获取照片.然而,开发并不是一帆风顺的,网上提供的解决方案都是使用bitmap获取图片,得到的图片分辨率比较低,虽然网上找了很多文章,但很多都是答非所问,又或者一大堆问题,还不如自己慢原创 2017-08-27 14:16:43 · 6759 阅读 · 2 评论 -
android studio 复制项目运行出现Application Installation Failed问题
这几天做项目的分离,新项目直接在原有项目基础上加新功能,所以直接拷贝一份项目,改了build.gradle的applicationId和签名文件,结果同一部真机上无法同时安装两个app,并出现以下错误提示:就是这样一个错误,让我足足调试了两天,期间尝试了以下方法都没用(本人测试真机用的小米note4): 1). 禁用instant run的第一条设置 2). 关闭小米M原创 2017-08-14 12:25:24 · 5605 阅读 · 2 评论 -
Mac 下使用Android studio生成.9png图片
最近在改版公司的UI,最终效果是这样的: 看到效果有点崩,倒不是有多难实现,主要是这个侧滑UI几乎两三周一换,真的是疲劳.这篇先简单普及一下mac系统下的.9png图片制作.废话不多说,下面开始一步步做起来:1.首先要准备一个目标图片,最好是png格式,将其复制到android studio的drawable目录下;原创 2017-08-13 17:08:16 · 8992 阅读 · 0 评论 -
android多渠道发布教程(360加固)
概述. 这两天,公司需要将应用上架到不同的应用商店,因为是刚接触上线部分,所以昨天晚上研究了下,发现网上多渠道打包应用并发布到多个应用商店的常用方法一般是借助于第三方的工具,最常用的当属友盟了,当然,还有个博主认为更加简便的方法,这里先卖个关子,接下来一一讲解.为什么要用到多渠道打包? 一般情况下,为了了解一款应用在各个应用商店的下载使用情况,我们会在应用中原创 2017-07-01 23:45:06 · 2960 阅读 · 0 评论 -
新时期,新计划,不能闲下来!
随着这周领了毕业证和学位证,宣告我大学生活的正式结束,心中无限感慨,四年时光如此稀薄,好像是刚毕业的高中生,全无大学生的感觉.可是,不管怎样,自己还是在岁月年轮中老了四年,大学生活该体验的都体验到了,但又好像什么都没做,这种空洞迷茫感不知道其他人有没有? 算了,闲话少说了,既然毕业,到了公司,忙碌期间不能撂下学习的担子,平时在公司虽然项目很紧,而且刚来,一切都不熟悉,代码才看了一天就让上手加功能,原创 2017-06-23 22:36:18 · 536 阅读 · 0 评论 -
魅族手机调试出现is waiting for debugger的问题解决
今天是在公司上班的第一天,公司竟然都没给看代码的时间,直接让临阵磨枪,亚历山大...测试组发来几个bug让我解决,姐姐们,我都没看代码就让我解决问题,真是信任我啊- -.能有什么办法呢,查资料解决吧. 于是乎,百度一番,很多答非所问,然后只能靠自己慢慢摸索了.问题描述:魅族2真机运行程序时跳出is waiting for debugger窗口,然后就闪退.既然其他手机没有这种问题,说明是手原创 2017-06-13 23:46:15 · 2300 阅读 · 0 评论 -
android E/RecyclerView﹕ No adapter attached; skipping layout
今天获取网络数据并在适配器上适配时,遇到以下问题: E/RecyclerView﹕ No adapter attached; skipping layout 解决方法:adaper初始化时传递的数据为空,我竟然忘记将获取的网络数据传给list了= =loge("当前用户录屏数据为:::::" + response);MyRecordVideoBean myReco原创 2017-07-06 09:43:29 · 9180 阅读 · 0 评论 -
android对接unity时出现的内存泄漏问题
昨天修改了需求逻辑,重新对接unity时遇到一个错误,搞了一下午,网上方法都试过了,但是没用,只能自己想办法了,好在最终靠自己解决了问题,Log错误提示: 1. JNI DETECTED ERROR IN APPLICATION: GetStringUTFChars received NULL jstring 2.JNI ERROR (app bu原创 2017-07-22 09:10:27 · 1304 阅读 · 0 评论 -
Eventbus接收不到消息问题
最近积累了好多问题和学习记录知识,但是最近公司项目实在太忙,抽不开身,后面有时间尽量都补上,今天先记录一个遇到的小问题:eventbus无法接收到消息我仔细查看了消息体和订阅方法,都没找到问题,那么应该是我订阅注册过程的问题了,经过log日志打印终于找到了问题所在:eventbus普通的订阅事件,即eventbus.getDefault().post(xxx)方法必须是在订阅后发送消息才可接收原创 2017-07-19 23:27:48 · 20809 阅读 · 1 评论 -
SurfaceView获取Camera预览界面
很多时候,我们有这么一个需求:需要拍摄视频,拍照或者录屏,又或者仅仅获取camera的界面作为底层view来实现一种透明UI效果,博主遇到的需求就是获取camera的view并显示在底层.同时,后面还有一个录屏的功能需求,即获取屏幕的内容录成视频,发现有很多坑,后面有时间会记录一下. 首先,一般获取camera的界面一般采用surfaceView来实现,它一般用于视频,拍照,游戏等原创 2017-07-19 23:57:43 · 1931 阅读 · 0 评论 -
Caused by: java.lang.RuntimeException: Unable to bind views for xxActivity
由于使用ButterKnife而出现的错误:Caused by: java.lang.RuntimeException: Unable to bind views for 问题出现原因:布局文件用错了,因为当前活动使用的是和另一个界面差不多的布局,所以直接复制黏贴了,结果没注意改掉布局文件- -@Overrideprotected void onCreate(Bundle saved原创 2017-07-25 10:18:10 · 6331 阅读 · 0 评论 -
Mac 系统下的android studio环境中获取sha1值
最近刚上手mac开发android项目,有很多不习惯的地方,其中一点就在于命令行使用,与windows有很大差别. 现在需要开发高德地图相关功能,需要获取sha1值,那么如何在mac情况下获取这个值呢,网上资料也不少,之所以被很多人踩是因为没解释清楚,其实很简单,一张图就解决问题了.如图所示,只需要根据如下步骤输入命令即可: 输入keytool -list -v -原创 2017-08-11 23:25:01 · 695 阅读 · 0 评论 -
Android高德地图自定义信息窗
随着毕业季的来临,最近忙起来,不仅仅是学习和毕设方面,还有工作事宜以及同学聚会等等,博客搁置了好久都没有更新。今天公司让写一个基于高德地图的小demo考察一下最近学习状况,虽然简单,但是还是有一些值得注意和以后借用的地方的。本文主要分为需求、分析和实现三个部分来完成最终项目要求,在此之前,先上一下最终效果图: 一、需求:这个练手的demo要求很简单:首先显示自身位置即定位,然后根据当前原创 2017-06-01 15:03:48 · 3951 阅读 · 0 评论 -
基于高德地图实现Marker聚合效果
最近,项目有了新的需求,要求地图上的标签点实现聚合效果,单纯的marker已经无法满足大量数据展示的情况,聚合效果成为大势所趋。 目前,网上提供基于高德marker聚合的思路大致差不多,处于雏形阶段。高德官方也提供了关于聚合的解决方案,对于缓存和加载效率都做了一些处理,为我们后面的定制奠定了基础,本文就在高德官方提供的方案基础上做一些定制化。笔者经过思考后,还是觉得将篇幅分为上下两部分,前篇主要涉原创 2017-11-20 22:55:50 · 14959 阅读 · 4 评论 -
Android版微信跳一跳小游戏如何利用技术手段达到高分!
本文主要来讲个个好玩的东西,近来微信刚出的跳一跳微信小程序的游戏很火,看到很多人都达到了二三百分就各种刷朋友圈了。 最终我们达到的分数却是这样的:一定会有人拍手叫好,“黄金右手”!说真的,我已经不用右手好多年,而且我玩这个游戏压根就没用手,而是意念!哈哈,别喷我,开个玩笑而已,肯定是利用技术手段啦,什么技术?python喽~哈哈,不过不是我写的,我自己是做Android开发的,我对于python从原创 2018-01-01 22:43:42 · 2017 阅读 · 0 评论 -
基于Kotlin解决Android中Handler内存泄漏问题
作为Android开发者,我们都知道,当我们在子线程处理完耗时任务后刷新UI时,一般会借助于 Handler 来实现。关于handler具体用法这里不做说明了,在使用 Handler 时一般会遇到内存泄漏的隐患,同时编译器也会给出一大片黄色的警告,在两者驱使下,我们势必要对其暴露的问题进行合理解决。 关于Handler内存泄漏原因的详细分析可以参考该文章:https://www.jianshu...原创 2018-09-19 14:15:10 · 3665 阅读 · 0 评论 -
Android简单实现本地图片和视频选择器功能
哈喽,大家好,好久不见了,很久没有更新 Android 方面的技术文章了,最近在忙公司的 AR 类的新产品,其中涉及到本地图片和视频的选择和上传功能。至于为什么不用系统提供的图片和视频选择器,原因你懂的,系统提供的选择器只能通过 Intent 方式去获取,这意味着需要离开当前页面前往系统的媒体库,选择完毕后在onActivityResult 方法中拿到结果。这显然存在很多弊端:UI的定制化很差...原创 2018-09-22 15:07:19 · 6407 阅读 · 2 评论 -
Android 中的 MVP:如何使 Presenter 层系统化?
原文地址:MVP for Android: how to organize the presentation layer原文作者:Antonio Leiva译文出自:掘金翻译计划本文永久链接:https://github.com/xitu/gold-miner/blob/master/TODO1/mvp-for-android.md译者:Moosphon校对者:https://git...翻译 2018-12-24 09:27:00 · 747 阅读 · 0 评论 -
当 Kotlin 中的监听器包含多个方法时,如何让它 “巧夺天工”?
原文地址:Listeners with several functions in Kotlin. How to make them shine?原文作者:Antonio Leiva译文出自:掘金翻译计划本文永久链接:https://github.com/xitu/gold-miner/blob/master/TODO1/listeners-several-functions-kotlin...翻译 2018-12-24 09:30:53 · 1742 阅读 · 0 评论 -
Android studio3.1.4打包release版本时失败问题
今天遇到一个很坑的问题:打包签名apk出现问题,debug包没毛病,但是release包却怎么也不成功,具体日志信息如下:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeReleaseResources'. at org.gradle.api.internal.tasks.exe...原创 2019-01-08 17:46:31 · 3282 阅读 · 0 评论 -
Flutter 之 AppBar 这样的骚操作你知道吗?
好久不见了,这阵子在忙公司的项目,加班比较严重,这周终于抽了点时间来帮国外一家公司做一款跨平台的 App。由于去年九月份在上海参加过 Google 举办的 Google develop days, 受益颇多,特别在其目前正在大力热推的 Flutter 框架。相比于目前热门的跨平台框架 React Native,Flutter在 UI 绘制以及性能方便不遑多让。因此,这款 app 打算基于 Dart...原创 2019-03-01 17:13:09 · 6745 阅读 · 1 评论 -
带你领略 Kotlin 中的 “when”魔法
提到 when,大家都会联想到 Java 中的 switch,然而在 kotlin 中,when 显然比 Java 中的 switch 要强大得多。首先,我们先来看看 when 的特点:它可以作为表达式使用使用更加安全强大灵活的分支结构可以不带参数接下来,我来带大家逐步领略这些特点。以下面这段 Java 功能代码为例:switch(animal) { case EAGLE:...原创 2019-05-21 14:10:20 · 788 阅读 · 0 评论 -
一篇文章带你领略Android混淆的魅力
在 Android 日常开发过程中,混淆是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码混淆的基本操作。那么,混淆到底是什么?它的好处有哪些?具体效果如何?别急,下面我们来一一探索它的"独特"魅力。混淆简介代码混淆(Obfuscated code)是将程序中的代码以某种规则转换为难以阅读和理解的代码的一种行为。在 Andr...原创 2019-07-02 09:19:59 · 722 阅读 · 0 评论 -
是时候让 Android Tools 属性拯救你了
日常开发过程中,我们都会遇到这样一种场景:我们写出的 UI 效果在对接数据之前需要提前进行预览,进而调整 UI 细节和排版问题。我们一般的做法是什么样的?如果存在像 TextView 或者 ImageView 这种基础控件,你是不是还在通过诸如 android:text="xxx" 和 android:src="@drawable/xxx" 的方式来测试和预览UI效果?当然你肯定也会遇到这些“脏...原创 2019-08-11 21:10:00 · 3303 阅读 · 1 评论 -
带你领略 ConstraintLayout 1.1 的新功能
原文地址:Introducing Constraint Layout 1.1 原文作者:Sean McQuillan 译文出自:掘金翻译计划 本文永久链接:https://github.com/xitu/gold-miner/blob/master/TODO1/introducing-constraint-layout-1-1.md 译者:Moosphon 校对者:...翻译 2018-05-21 08:45:41 · 1185 阅读 · 0 评论 -
Glide在RecyclerView中部分图片加载失败的问题
在Android开发中,图片加载是常见需求之一,而glide是目前最为主流的图片加载框架了。但今天在使用时,遇到了一个问题:在recyclerview中部分图片加载不出来,一直显示的占位图.通过查找资料,可以通过如下方法来解决问题:Glide.with(activity).load(list.get(position).getUserLogo()) .diskC...原创 2018-05-11 11:11:41 · 4947 阅读 · 0 评论 -
基于高德地图实现完全自定义Marker
做地图社交类APP开发的都知道,一般情况下,为了整体的美观和用户体验度,我们需要定制化Marker的样式。本文中实现的方式都是基于高德地图的,百度地图也类似,大家可以照葫芦画瓢,废话不多说,先来看看最终效果:实现思路: 先来看看高德官方提供的设置Marker图标的方法:我们可以看到setIcon()方法,里面的参数BitmapDescriptor就是我们最终需要的东西。那...原创 2017-11-25 15:45:32 · 13604 阅读 · 5 评论 -
Android日期格式转换(将日期转为周期)
最近自己的项目中遇到一个需求,需要将标准的日yyyy-MM-dd转换为具体的周期,即星期几。通过查找资料发现,Android中已经为我们提供了强大的日期工具Calendar类,我们可以通过该类就能快速实现日期之间的转化。这里,我已经将其封装成了一个工具类,并提供类汉/英两种周期格式的转化:/** * Created by moos on 2018/1/6. * func:时间的工具类原创 2018-01-21 14:21:58 · 1669 阅读 · 0 评论 -
Kotlin之路-起点篇
概述 2017年google开发者大会上,Google正式将kotlin列为其官方语言。那么,到底kotlin有何厉害之处呢?简单来说,使用kotlin,可以让代码更加简洁和易读,同时支持函数式编程,100%兼容老牌开发语言-Java,并且还有很多实用的语法糖。知乎上还有关于kotlin的大牛论战,看法褒贬不一,但是,个人看来,kotlin是大势所趋。如果你认为kotlin只能用来开发And...原创 2018-02-12 14:11:29 · 430 阅读 · 0 评论 -
Mac 上jdk默认存放路径以及环境变量配置
自从将开发的电脑从Windows换为mac后,遇到很多小问题,当然也体会到mac上Linux系统的强大之处。首先从官网下载了Android Studio后,首要的肯定是要设置jdk路径以及配置环境变量了。JDK默认存放路径我们都知道,windows系统中jdk需要自行下载,而mac上一般自带了java虚拟机和jdk了,方便起见,一般用系统自带的就可以了。在此之前,我们需要知道系统jdk默认...原创 2018-02-27 16:20:49 · 9957 阅读 · 0 评论 -
Android将library代码发布到jcenter
作为一名Android开发者,日常开发工作中肯定会用到一些强大的第三方开源库,有了这些开源的帮助,开发工作可谓是如鱼得水。很多时候,我们自己写了一套代码,为了让别人体验到自己代码的便捷之处,通常我们需要将其部署到github,发布到jcenter,然后生成gradle代码供他人使用。网上对于这部分的教程很多,不管是通过gradle-bintray-plugin插件或者是bintray-releas...原创 2018-03-25 16:36:24 · 394 阅读 · 0 评论