- 博客(52)
- 资源 (1)
- 收藏
- 关注
原创 【GT-安卓应用开发之表情列表】
前言:今天无聊翻了翻之前做的一个IM程序,趁着午休时间将聊天表情部分代码摘出来记录一下。 所谓表情消息,其实就是一串特殊格式的字符串,记得之前QQ是可以手输表情的。我的思路是将图片与名字(也就是前面说的特殊格式的字符串)进行一一对应,利用ViewPager+GridView展示表情列表,点击某一表情获取表情名字,然后转为Bitmap后再转为ImageSpan插入到EditText中。 ...
2018-10-24 12:09:57
303
原创 【GT-安卓应用开发之获取经纬度(非三方)】
前言:基于地理位置的服务目前十分火爆,因此在工作中经常会涉及到地理位置的获取。就我的了解,是有三种方式获取位置信息,分别是基于GPS和基于网络以及利用第三方获取位置信息。我个人习惯使用第三方,如百度地图、高德地图,因为其可以获取到详细的信息,而不仅仅是经纬度,更甚的是还可以获取天气情况~ 但是,今天记录的并不是集成第三方SDK,而是前两种方式。前两种方式一般来说是需要结合使用的,毕竟并不所有...
2018-10-23 16:19:05
295
原创 【GT-安卓应用开发之退出APP】
前言:目前在app中主流的退出应用的方式有两种,一种是弹出提示框,另外一种则是主流的双击退出。今天整理了一下相关代码,编写一个小demo整理了几种退出方式。 在安卓中,监听返回键有两种方式,分别是onKeyDown与onBackPress,我定义四种实现方式如下: 方法一,onBackPress处理,双击退出 方法二,onKeyDown双击退出 方法三,onBackPres...
2018-10-23 11:26:48
332
原创 【GT-安卓应用开发之简易文字广告轮播】
前言:又是午休时间,今天写一个简单的文字轮播demo,主要由一个水平方向的TextView和一个竖直方向的ListView组成。安卓目前提供的TextView支持跑马灯效果(修改几个属性即可),但是其有一个缺点就是一旦失去焦点,文字便不再滚动,自定义TextView修改几个方法可以解决这一问题。ListView的滚动则可以利用TimerTask和ListView的smoothScrollBy实现。...
2018-10-20 13:16:15
295
原创 【GT-安卓应用开发之Glide获取视频缩略图】
前言:期待已久的周末终于到来了,虽然明天还需要上班,但是今天却不像平日里迫切的赶回家。饭后,闲来无事结合最近的一个项目需求,编写一个小demo,主要是实现视频文件缩略图的获取。 我的思路是,首先获取所有的视频文件列表,然后依次获取缩略图并展示。但是出于时间因素,在这里我只获取第一个视频文件的缩略图,也就是这个demo的流程大致为“获取视频列表—获取第一个视频的缩略图展示—保存缩略...
2018-10-19 21:20:11
2875
原创 【GT-安卓应用开发之仿微信联系人】
前言:曾经在一篇文章中记录了一下有关ListView快速检索的实现,今天还是用微信看到了它的联系人列表,利用午休的时间写一个简单的demo。 首先,先梳理一下逻辑流程:我们要实现的功能是滑动或者点击右侧的导航栏,在屏幕中央展示当前选择的首字母,ListView同时滑动到相应的部分。 导航栏的实现:与之前的demo类似,我们自定义一个控件继承TextView,重写...
2018-10-19 13:13:32
397
原创 【GT-安卓应用开发之长按识别二维码】
前言:昨天写了一篇博客记录了一下ImageView长按实现图片的保存,在生活中使用微信的时候会发现长按图片,图片中如果含有二维码的话会弹出一个有“识别二维码”的弹窗,也就是说有无二维码弹出框是不一样的。今天,趁着午休的时间在保存图片demo的基础上进行了一下修改,实现简单的二维码识别功能。 逻辑流程:用户长按图片—ImageView截图—判断有无二维码—提示 关...
2018-10-18 13:43:29
472
原创 【GT-安卓应用开发之通知提醒】
前言:现在消息推送几乎成了一个APP必不可少的部分,时不时地就会用到通知提醒功能。今天整理了一下通知的用法,并编写一个demo,包含调用系统自带的通知以及自定义通知的实现。界面: d...
2018-10-17 11:16:55
252
原创 【GT-安卓应用开发之长按保存图片】
前言:微信预览图片,长按会出现一个弹出框,其中会有一个“保存图片”。今天正好做了一个类似的小功能,特意写了一个小demo来记录一下。 首先,介绍一下该demo:主界面有一个ImageView显示本人的微信二维码,要实现的功能是长按二维码弹出提示框,告知用户图片保存的路径,点击保存后开始保存图片,保存成功后Toast通知用户。 界面效果如下: ...
2018-10-17 10:00:56
556
原创 【GT-安卓应用开发之合成长图】
前言:刚才看微博,看到很多长图。一时兴起,想通过代码制作一张长图并展示。我的思路是利用Canvas将多张照片依次合成,并在外层套用一个ScrollView展示图片以及保存本地。 效果图如下: 关键代码:public static Bitmap newBitmap(Bitmap bmp1, Bitmap bmp2) { Bitma...
2018-10-13 16:35:00
258
原创 【GT-安卓应用开发之更改头像】
前言:更换头像这一功能需求在实际工作中是一个无法避免的问题,今天趁着午休的时间编写了一个小demo,在这里做一下记录。这次的demo功能较为简单,支持拍照上传与图库选择,裁剪后利用开源控件显示为圆形头像,可以点击头像进行预览。 首先,设计主界面: 主界面分为两部分,一部分是修改头像用的布局,另一部分则是预览头像的部分,效果如下: ...
2018-10-13 13:43:28
420
原创 【GT-安卓应用开发之时间显示】
前言:有的时候我们需要在应用界面实时的展示当前时间,最近的项目中刚好也有类似的需求,今天便抽出点时间整理并记录一下,后面会附带demo的地址 首先,先展示下界面效果: 从效果图中可以清楚的看到展示了当前年月日、周几以及当前的时间,下面先说一下我的设计思路:创建三个TextView分别用于展示日期、周几以及时间,开启一个子线程每隔一秒钟刷新一下...
2018-10-13 11:23:40
428
原创 【GT-安卓应用开发之Office在线预览】
前言:工作中经常会碰到文件的在线预览问题,今天恰巧刚好写了一个小demo,记录一下。 首先,介绍一下几个目前比较常见的处理方式: 1、文件下载,通过第三方工具打开 这种方式需要用户先把文件下载后,再通过wps等软件打开,步骤较为繁琐,用户体验极差 2、利用腾讯、百度等提供的SDK 可以到官方下载SDK以及介绍...
2018-10-12 13:02:12
301
原创 【GT-安卓应用开发之LIVE播放】
前言:现在直播非常火爆,公司在最初的时候也想赶一下时髦,提出了直播的需求,今天正好抽出了一点时间记录一下。众所周知,直播是分推流与拉流的,顾名思义推流可以理解为录制端,而拉流则是播放端。 今天,只是记录一下拉流(推流会在后续补上)。 开发常用的视频播放器有很多,前面我也记录了一个JCVideoPlayer,除此之外还有Vitaimo、PlayerManager等...
2018-08-21 13:35:04
341
原创 【GT-安卓应用开发之文件下载实现】
前言:之前有篇文章记录了一下Retrofit,这篇文章也是基于Retrofit实现的。接下来就记录一下,之前做的利用Retrofit实现的文件下载功能。 首先,定义接口与Retrofit对象//下载文件@Streaming@GETCall<ResponseBody> downloadFile(@Url String fileUrl);public...
2018-08-16 09:03:33
1049
原创 【GT-安卓应用开发之简单视频播放实现】
前言:闲来无事,发现已经好久好久没有更新文章了,似乎又回到了之前的那种状态。每天就是敲代码,实现功能后将项目打包备份就结束了,很少回过头再看一下自己写的代码。开始写博客不就是为了改变这种状态吗,罪过罪过。恰巧今天不是很忙,更新几篇文章记录下最近的工作吧~ 作为今天的第一篇文章,我一直在犹豫记录点什么呢。打开手机,看见的第一个软件竟然是抖音哈哈。幸运的是最近做的项目中刚好有视频播放...
2018-08-16 08:19:33
327
原创 【GT-安卓应用开发之评论弹窗实现】
前言:最初实现评论的时候,我是在利用setVisibility来控制输入框的隐藏与显示来实现评论。但是发现这样做,弹出键盘的时候会把整个界面推上去,不大符合人们的使用习惯。因此,我决定采用弹窗的形式来实现评论与回复。 记录下用到的场景:1、点击评论ICON,2、点击评论列表进行回复 public class PlDialog extends Dialog...
2018-08-09 09:40:48
514
原创 【GT-安卓应用开发之评论列表实现】
前言:既然前面两篇文章记录了两种点赞列表的实现方式,那么这篇文章记录一下评论列表的实现吧。其实,评论列表的实现与第二种点赞列表的实现方式是相似的,都是利用自定义VIEW实现。不同的是点赞是自定义TextView,而这次的评论是自定义的线性布局(当然,自定义TextView也可以实现的)。这次评论列表采用自定义View继承LinearLayout,并动态添加TextView实现。 ...
2018-08-09 08:27:17
571
原创 【GT-安卓应用开发之点赞列表实现2】
前言:在上一篇文章中,记录了一种利用流式布局+自定义TextView实现的点赞列表,但是这话方式实现的效果并不是很好(对齐问题)。那么今天,就把项目中使用的方式摘出来单独写一个demo记录一下。 今天仅仅利用一个自定义TextView实现点赞列表,首先我们要明确实现哪些效果:展示点赞列表,并实现点击点赞人名字获取到其用户Id,用于跳转至其个人资料。 接下来,就一...
2018-08-07 15:32:24
389
原创 【GT-安卓应用开发之点赞列表实现】
前言:今天闲来无事想到了刚接触安卓不久的时候特别感兴趣的一个东西,那就是自定义View属性。恰巧今天闲来无事,就写一个简单的类似于朋友圈点赞列表的小程序。 我的思路是这样的:点赞列表采用流式布局,由于用户点击名字可以查看用户资料,所以我自定义一个TextView,并定义一个展示用的username和查询资料所需要的userid。 首先,实现自定义TextView...
2018-08-01 14:08:06
423
原创 【GT-安卓应用开发之MediaPlayer使用】
前言:之前做项目涉及到一个功能是播放音频,考虑到其逻辑比较简单,便采用安卓自带的MediaPlayer实现。先了解一下需求,接收三个参数分别是标题、图片地址和音频url,支持播放、暂停、重放以及拖动控制条。 要实现前言中涉及到的几个功能,我们需要先熟悉一下MediaPlayer提供的几个方法: 1、setDataSource,设置数据源,也就是前言中提到的音频u...
2018-07-31 14:21:03
474
原创 【GT-安卓应用开发之Retrofit+RxJava网络请求】
前言:今天记录一下最近使用比较多的一个网络请求框架,也就是今天的主角Retrofit+RxJava。对于RxJava其实就是对异步操作的封装,对于它的评价优劣参半(本人对其的态度比较中立,这也可以与本人的理念相关,我是一个注重结果的人,使用什么框架对我来说并不是很紧要)。而Retrofit是什么呢?它其实是对OkHttp进一步的封装,实质上还是由OkHttp完成网络的请求加载。既然这样为什么还要选...
2018-07-31 09:45:34
435
原创 【GT-安卓应用开发之图片浏览器】
前言:昨天分享了动态的发布(图片选择器),今天分享一下与之对应的一个小功能—图片浏览器。我利用ViewPager+Fragment实现这一功能,接下来一起了解一下吧。 首先,贴上两张图片,第一张是动态列表展示,第二张是点击之后进入的图片浏览器,今天只是分享这一功能的实现,请忽视界面哈哈。 接下来,便是图片浏览器的实现过程了,日常第一步界面布局,从上面贴出...
2018-07-29 15:18:41
724
原创 【GT-安卓应用开发之JSON解析】
首先,我们需要理解什么是json。那么什么是json呢?json其实是一种数据结构,json分为两种结构,一种是我们常见的以key-value形式存在的无序jsonobject对象,另外一种则是有序的集合,也被称为数组(jsonarray)。 解析json其实就是解析json字符串,从字符串中获取到我们需要的数据。解析方法有很多,在这里分享一下我最常用的两种:...
2018-07-28 14:39:14
934
原创 【GT-安卓应用开发之发布动态实现】
前言:今天开会讨论需求的时候,老板要求在最近做的APP上加一个类似朋友圈的东西,恰巧之前看到网上有很多仿朋友圈(图片多选)的例子,心血来潮就记录一下动态的发布吧。 弹出框效果如下: 我们的需求如下: 1、发布内容可包括文字与图片 2、支持拍照上传与图库选择 3、点击查看大图,长按删除当前图片 ...
2018-07-28 13:45:00
1148
原创 【GT-安卓应用开发之ViewPager+Fragment实现TAB切换】
前言:话不多说,先看效果步骤: Step1,界面布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andr...
2018-07-27 16:27:05
885
原创 【GT-安卓应用开发之错题率统计】
前言:对于学生的答题(学习)情况,数据是直观的表现,在实际开发中也需要涉及到大量的数据统计与分析,我们经常通过图表结合来更加直观的展现数据。 接下来,记录一下最近做的一个错题率统计与总成绩排行。整个界面是由上半部分的柱形图来展现错题记录,下半部分则是已提交(答题)人员的成绩排名。主要涉及到的几个点就是调用接口获取后台数据、数据的整理(排序)、数据的展现(包括柱形图与排行列表),我...
2018-07-27 15:51:09
660
原创 【GT-睡前感悟】
在很长一段时间里,我都在考虑我是不是该放弃技术而转向其他领域了。之所以会出现这个问题,很大的原因是自己与公司的格格不入,具体表现在下面几点: 1、公司是一个传统的市场营销型公司,在这工作技术只是一个辅助工作,感觉不到重视甚至是蔑视。技术自信在这种环境下一点点的被瓦解,找不到最初的快乐与骄傲。 2、太正式化的着装要求,在秋冬季要求穿正装、扎腰带、穿...
2018-07-26 22:01:37
494
原创 【GT-安卓应用开发之充值界面】
前言:话不多说,先上图 从上面的图片可以看出该界面由余额信息和流式布局的订单信息以及确认支付三部分组成,代码如下:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/r...
2018-07-26 17:08:15
1823
1
原创 【GT-安卓应用开发之好友快速索引】
前言:众所周知,目前大多数的社交软件好友列表都是按照一定的规则排序的,我个人比较喜欢根据全拼的首字母进行排序,这样可以方便我们查找。 今天,分享一个利用侧边字符索引栏进行检索的方法: Step1,好友列表排序 我们假定已经获得了好友列表,只不过从后台获取的数据是乱序的,需要我们手动对其进行排序 在定义User的时候需要定义一个...
2018-07-26 16:47:34
453
原创 【GT-安卓应用开发之会话列表实现】
前言:今天休假回来的第一天,突然不知道该写点什么了,打开微信也找不到人聊天。。。无聊只好翻阅聊天记录,突然有了想法:今天写一下聊天记录的实现。 我们的聊天记录是保存在本地的,利用安卓自带的轻量化数据库SQlite实现。设计思路是这样的,对于会话列表我们只保存与某一好友聊天的最后一条记录,而进入会话界面后再查询所有记录,也就是会话列表与聊天记录实际上是两个表,在这里我们一起来了解一...
2018-07-26 16:17:12
756
原创 【GT-安卓应用开发之获取序列号】
前言:很多时候,我们的程序都需要与终端进行绑定来提高安全性。想要设备跟APP(用户)进行绑定,则需要获取到设备的唯一标识,可以使用序列号进行绑定。 对于android.os.SystemProperties,大部分从事安卓开发相关工作的的应该都不会陌生,可以将其看作是系统属性,我们可以借助它获取当前设备的序列号。 虽然android.os.Sy...
2018-07-18 16:07:38
674
原创 【GT-安卓应用开发之个性拨号】
前言:一改历史惯例,先附上源码地址个性拨号 避免各位朋友下载后发现这个小程序太垃圾没什么用,接着再附上张图片吧 该程序由上部分的号码展示与下边的拨号盘两部分组成,代码比较简单在源码中也有就不在这里展示了 下面一起看...
2018-07-18 15:20:46
468
原创 【GT-安卓应用开发之随机键盘】
前言:由于之前是做的支付相关的工作,因此对于密码支付的安全比较重视,在工作中经常要接触到随机密码键盘的需求。加上明天就要放假(公司给了一周的假期,很开心~)了,今天没什么工作,就编写一个随机键盘正好回一下曾经的工作吧。 首先,先上图片(界面较粗糙,不喜勿喷): 从上面的图片中,我们大致可以看出功能很简单就是一个数字密码键盘,...
2018-07-18 14:38:10
622
1
原创 【GT-安卓应用开发之事务使用】
前言:虽然在实际开发的过程中用到事务的机会并不是很多,但是有两次接触到事务对我印象比较深刻:一次是在校期间学习数据库的时候,当时老师讲解了其ACID四个特性便感觉很有兴趣;另外一次,是在一次面试的时候,面试官问我对事务的认识。 那什么是事务呢?事务可以简单的理解为应用程序中的一系列操作,但是这些操作要么全部完成要么全部不做,这也是事务的四大特性之一(原子性);事务有两种结...
2018-07-17 14:00:48
486
原创 【GT-安卓应用开发之清理缓存】
前言:正文开始之前我们先熟悉一下两个概念:清理缓存与清理数据,所谓缓存我们可以将其看作一个临时存储,比如下载图片时生成的缓存文件;而数据则指的是用户的一些配置数据,比如SP与数据库或者一些其他配置文件。与存储类似的,在安卓中缓存也是分成内部缓存与外部缓存,所以在清除缓存的时候需要注意,以免清理不完全。 接下来,让我们来一起实现简单的清理缓存: S...
2018-07-17 09:25:34
619
原创 【GT-安卓应用开发之ButterKnife使用】
前言:第一次接触到ButterKnife还是在两年前,当时我还是使用Eclipse和MyEclipse进行JAVA后台的开发(转安卓仅仅出于个人兴趣),利用业余时间学习安卓开发并做一些简单的小程序,findViewById是我经常使用的一个方法。一次偶然的机会到北京培训,与安卓开发同事交流,并在获得他的允许后查看了他的代码。瞅了半天,竟然没有找到findViewById,却有一些@BindView...
2018-07-16 17:06:05
466
原创 【GT-应用开发之OSS存储(二)】
前言:在上一篇文章中,我们已经了解了客户端的实现过程并分享了相关的部分代码,在本文中,我们将一起了解一下STSServer。 提到STSServer,我们从整体来熟悉一下安卓直传的实现步骤: 1、APP端向应用服务器(STSServer)申请一个上传凭证(TOKEN) 2、STSServer检测APP端请求的合法性,并返回TOKEN 3、安卓端接收STSServer返回的T...
2018-07-13 15:17:20
464
原创 【GT-应用开发之OSS存储(一)】
前言:在做聊天APP的时候,需要涉及到图片消息的上传存储,传统方式会将图片存储在服务器上,但是这样做的话会给服务器造成较大的压力。很幸运,阿里云为我们提供了海量、安全、低成本、高可靠的云存储服务—OSS。 何谓对象存储OSS,阿里云给它的定义是:阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以通过调...
2018-07-13 15:00:43
637
原创 【GT-Android开发之支付宝支付】
前言:第三方支付已经成为了APP不可或少的部分,目前主流的第三方有支付宝、微信支付、拉卡拉、通联支付等,其中(起码现在)支付宝是处于领先和主导地位的。 今天就借助之前写的一个APP来回顾和熟悉下支付宝的移动支付,至于前期准备工作(如企业认证,商户开通等),在这里就不再叙述了,网上资料很多。这篇文章主要介绍支付宝移动支付的流程与实现,以及在开发过程中遇到的一些坑。。。话不多说,下面开始: ...
2018-07-12 16:20:20
567
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人