- 博客(18)
- 收藏
- 关注
原创 Android 实现页面多状态管理
我们常常遇到这样的一种需求:当后台返回的数据正常时,展示数据,数据为空时,展示一种空状态布局,当网络异常时,展示“网络不见了”的布局,如果你的Activity只有一个页面,实现起来当然是极为简单的,伪代码如下:<Root><!--空页面布局--> <include android:id="@+id/layout_empty" layout="@layout/layout_empty" android:visib
2020-11-17 10:14:51
1044
原创 Android:自定义View系列(1)
自定义View是每个开发者绕不过去的一座山,高山仰止,不管看过多少的技术博客,都需要真正动手敲上一遍才能真正看到高处的风景,今天,趁着业务需求,就顺手来写一个基础入门的自定义View。初步完成效果如下:这样的图形基本上在页面顶部会使用到,相对而言使用到的技术点较少,很适合用来做学习项目。现在,让我们一步一步来拆分者个View吧。1.分析这个View我们可以把它分为三层,第一层为一个纯色矩形,第二层为从左到右依次排列的多个小矩形,帝三层为裁切层,即上,左,右三条边为直线,下边为弧线的特殊图形。
2020-06-01 14:45:34
565
1
原创 Android 科大讯飞语音评测SDK 踩坑实录
英语付费类APP大多都会对用户的发音进行评测的场景,一些大公司借住其高效的语音识别技术可以很轻松的实现。我司最开始接入的是腾讯云智聆SDK,但是用户反映普遍较为激烈,我们不堪其扰,于是在最新的版本中将其切换为科大讯飞SDK。第一步,当然是登陆科大讯飞官网,开始注册账号,创建APP,本地记录下APPID,并下载相应的SDK。需要注意的是,必须下载appid对应的sdk,下载之后,需要将项目中的j...
2020-04-13 10:20:27
2597
1
原创 WindowManager 实现App内全局悬浮框
我们原有的APP中有视频播放以及投屏的功能,但是投屏只在当前页面起效,一旦退出,投屏就自动失效了。偏偏产品喜欢研究别人家的app,研究了一波之后,对我发出了直击灵魂的疑问:“为什么人家腾讯视频在投屏的时候有个悬浮按钮?”,"为什么人家优酷在投屏的时候有全局悬浮按钮?"产品指着腾讯视频,终于露出了獠牙:“啊,我不管,我要这个!你要给我做!”。我的内心毫无波动,甚至还有点。。。哎,好吧,做...
2019-11-29 15:35:22
1454
原创 网络请求:retrofit2 + rxjava2 的基本上使用以及简单封装
retrofit2是一款封装okhttp的优秀的网络请求框架,搭配rxjava时有出人意料的效果,每当出去面试的时候,被问及的频率也是极高的,于是新项目里也就顺理成章的接入了retrofit2+rxjava,并做了简易的封装,趁着今天周六,写一篇文章来记录一下。1.retrofit 网络请求github:https://github.com/square/retrofit我们先来使用r...
2019-10-19 12:51:20
313
原创 RecycleView多Type布局的实现以及点击事件
RecycleView是开发中最常用的组件之一,因其优秀的回收机制而得到了广泛使用。最常用的效果就是用来实现复杂多布局列表。所以当项目里需要实现如下布局时,我最先想到的便是使用Recycleview。可以看到,整个Recycleview是方向垂直,而第一个itrm中有个水平滑动的recycleview。而我们的demo实现的效果如图:现在让我们开始实现这一步骤:1.先编...
2019-08-22 13:54:04
688
3
原创 WebView的简单使用以及 js与java的相互调用
开发App时,经常会遇到要在应用内部加载一个HTML的网页,同时还需要Android页面与Html页面有数据的交互。这就要用到WebView。1.WebView的使用webview是谷歌官方提供的基础控件之一。使用方法有两种,其一为静态使用,即在xml布局文件里直接使用。如图:还有另外一种方法,是在代码里动态创建webview。如图所示: web = new WebView(...
2019-07-17 21:11:36
569
原创 阿里云 短视频解决方案官方demo 编译
因公司业务需求,需要接入市面上的第三方短视频SDK,领导初步决定使用阿里云。因此,Android这方面就由我来对阿里云短视频SDK做一个初步的技术调研。首先,根据官方文档,下载demo。下载版本为随后根据文档提示,将项目导入studio,但就是在这一步,出现了一个问题。官方推荐的编译环境为3.1.3.gradle版本为4.4.而我实际的开发环境为studio 3.4.1,g...
2019-06-28 09:42:58
1671
1
原创 Android service的简单使用 应用内升级
Service作为Android四大组件之一,使用的场景是极为广泛的。日前在开发过程中,就被要求要做个应用内升级的功能。我的第一反应就是用service来实现。先来说一下我们的思路:1.通过后台接口返回的数据,判断是否需要进行新版本apk的下载2.当需要更新时,我们要给出一个dialog来提示用户升级。3.如果用户确认升级,启动servce,在后台进行apk文件的下载4.下载完...
2018-10-31 19:29:51
669
原创 Android 开发之DialogFragment使用
DialogFragment是有谷歌推出的致力于取代dialog的控件,它继承于Fragment,也是有生命周期的。因为新项目是由我来独立开发,于是就想趁着此次机会来尝试试用一下。首先,第一步,要新建一个java类,集成自DialogFragment,重写其onCreateView方法,在此方法中加载自定义布局文件。布局文件:<?xml version="1.0" enco...
2018-09-21 18:26:22
5848
原创 Android 获取设备公网IP/私网IP地址
在应用调试过程中,对接的技术人员要求提供一下机顶盒 的外网IP地址,于是打开了盒子上的设置,将IP地址发了过去,对面回复说这是私网IP,要公网IP才可以。一般情况下,电脑的公网IP地址很好查:打开百度:但是有些机顶盒上是没有浏览器的,所以就需要通过代码的层面来获取。通过百度,先找到了如下的方法: /** * 获取IP地址 * @return * ...
2018-09-19 14:14:52
8429
原创 Android Studio 常见错误(三)AS 升级到3.1.3
某日打开AS,遇到升级3.1.3的提示,左右闲来无事,点了即刻升级,升级之后遇到了问题不少,在此做个记录。1.会提示依赖的compile 已经被弃用,需要更换为“implementation”或者是“api”Configuration ‘compile’ is obsolete and has been replaced with ‘implementation’ and ‘api’.`...
2018-07-19 10:21:38
2363
2
原创 Android TV(三)焦点处理1.0
在上一篇中我们已经创建出一个运行在盒子上的APP,它和我们运行在手机上的APP区别极小,只有在Manifest.xml中有些许的不同。但是我们知道,TV和手机最大的区别就在于交互,在手机APP内,我们可以通过注册点击监听onClickListener,或者是触摸OnTouchListener来进行交互,但是Tv上显然是没有触摸的,至少是没有onTouchListener的。 ...
2018-07-18 23:48:52
1065
原创 Android TV 初探(二) 创建项目
在上一篇中,我们已经成功连接了盒子,那么接下来,我们就可以来开始我们的第一个TV APP项目了。首先要明确的是,谷歌退出了一个v17包 LeanBack来致力于TV开发,v17的意识就是说此依赖库最低支持到17,但是目前国内的Android TV市场混乱,很多盒子版本还停留在4.0(15,没见过更低的),最常见的盒子是4.4(19),而类似于天猫魔盒,小米,等盒子系统则是在5.1。正是鉴于此种情况...
2018-07-10 18:57:49
1965
原创 Android Studio 常见错误(二)
AS使用过程中遇到的问题总是多种多样的,每遇到一个,就意味着对Studio的了解加深了一步。/******************************* 我是正文的分割线 ********************************/因项目需要接入第三方SDK,于是引入一个Library,于是就抛出了这么一个异常:遇到这样的提示,首先,点击最后一行的“see complet...
2018-06-22 18:04:10
372
原创 Android TV 初探(一) 连接机顶盒
因工作的关系,由手机开发转向TV开发,虽然两者区别不大,但还是把我搞得一脸懵逼,相当头大,不过好在总算是有一点收获,在此分享给大家。连接盒子tv开发的本质就是机顶盒的开发,但由于盒子不像手机一样方便调试,故而一般采用adb命令的方式来进行连接,首先要确保盒子和电脑在同一个无线网络下,使盒子处于开发者模式并允许adb调试,这一步不同的盒子操作大致一致,不做详细描述。然后打开命令行工具:adb con...
2018-05-02 17:39:08
3227
原创 APP安全退出 及 Activity的生命周期
面试的时候遇到面试官问:如何退出app,退出一个app的时候,activity的生命周期是怎么走的?先来看第一个问题:如何退出APP?1.System.exit(0);这种方法是通过关闭虚拟机来退出当前app的,简单粗暴,在我刚参加工作时采用的就是这种方式2.自定义Application,并创建一个Activity的集合,退出时,关闭所有的Activity即可(此种方法更为常用) 2.1自定义Ap...
2018-03-07 18:26:44
1065
原创 Android Studio 创建项目报错(一)
刚换完工作,配置好jdk,装好studio,刚创建好一个project,studio就抛出一个错误:Error:Unknown host 'services.gradle.org'. You may need to adjust the proxy settings in Gradle.Enable Gradle 'offline mode' and sync projectLearn a
2018-01-26 09:41:37
6324
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人