android
文章平均质量分 87
Tracy林立颖
与其拍手抱怨不如握拳去拼。
展开
-
Android Arcgis 优化--------道格拉斯-普克抽稀算法
最近偶然接触到抽稀相关的算法。发现道格拉斯抽稀算法很适合目前项目某一个功能优化。所以我抽空看了一下,也写了针对经纬度路径点抽稀的工具类。下面我们先看看该算法的结束。介绍道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法、迭代适应点算法、分裂与合并算法)是将曲线近似表示为一系列点,并减少点的数量的一种算法。该算法的原始类型分别由乌尔斯·拉默(Urs Ramer)于1972年以及大卫·道格拉斯(David Douglas)和托马斯·普克(Thomas原创 2021-06-25 10:25:44 · 989 阅读 · 1 评论 -
浅谈 Flutter 空安全
浅谈 Flutter 空安全介绍使用使用过程容易出现的问题常用场景总结介绍空安全(Sound null safety)是Flutter 更新之后 Dart 中新增的一项特性,它并不是独有的,像Kotlin、swift等语言也有此特性。有了空安全,Dart 分析器可以进行更好的检查。例如:它将在您读取一个可空的变量前提示您进行空检查。由于 Dart 的空安全是十分有效的, Dart 编译器和运行环境也同时可以通过优化减少内部的空安全检查, 这样应用就可以更快且更小。与空安全相关的新操作符和关键字有 ?、!原创 2021-04-28 09:16:45 · 2360 阅读 · 2 评论 -
粒子动画显示文字的Android控件
偶然在github上看到用粒子动画显示文字的一个控件,觉得挺有意思。今天介绍一下怎么用。github 原地址:https://github.com/Yasic/ParticleTextView首先在build.gradle中 添加上依赖:compile 'com.android.support:appcompat-v7:23.4.0'这里需要注意的是要求最低sdk版原创 2017-05-11 16:13:26 · 937 阅读 · 0 评论 -
Android 下 编写自己第一个NDK Demo
废话不多说首先新建一个项目然后新建一个NDK工具类,然后内部声明native方法之后就build project ,之后会得到中间文件,我们关注的是classes文件夹:然后我们点出Android Studio 下面的Termina标签输入一下命令,首先进入classes文件夹下的debug文件下,然后输入javah命名cd app\build\intermed原创 2017-04-27 16:46:22 · 516 阅读 · 0 评论 -
利用Jsoup爬取糗事百科数据
在开始之前先日常介绍一波 Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。jsoup的主要功能如下:1. 从一个URL,文件或字符串中解析HTML;2. 使用DOM或CSS选择器来查找、取出数据;3. 可操作HTML元素、属性原创 2017-12-27 14:22:06 · 445 阅读 · 0 评论 -
工作中图片的三级缓存机制介绍
现在android应用中不可避免的要使用图片,有些图片是可以变化的,需要每次启动时从网络拉取,这种场景在目前市场的应用以及纯图片应用(比如百度美拍)中比较多。实现图片缓存也不难,需要有相应的cache策略。这里我采用 内存(memory)-本地(local)-网络(Internet) 三层cache机制,其实网络不算cache。当根据url向网络拉取图片的时候,先从本应用内存中找,如果内存中没...原创 2019-06-25 09:38:52 · 436 阅读 · 0 评论 -
设计模式之简单工厂模式
简单工厂模式(又叫作静态工厂方法模式),其属于创建型设计模式。首先先看看它的定义。定义:简单工厂模式属于创建型模式,其又被称为静态工厂方法模式,这是由一个工厂对象决定创建出哪一种产品类的实例。在简单工厂模式下有如下角色:Factory : 工厂类,这是简单工厂模式的核心,它负责实现和创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需产品对象。IProduct:...原创 2019-08-19 10:04:53 · 121 阅读 · 0 评论 -
设计模式之工厂模式
上篇的话我们简单介绍了简单工厂模式。这篇的话是介绍工厂模式。首先我们还是来了解一下工厂模式的定义。定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。IProduct:抽象产品类。Product:具体产品类,继承IProduct或实现IProduct接口。Factory:抽象工厂类,该方法返回一个IProduct类型的对象。Conc...原创 2019-08-19 14:13:27 · 141 阅读 · 0 评论 -
设计模式之建造者模式
今天我们来说说设计模式中的建造者模式。日常开发中我们见过的建造者模式应该还不算少,平常用的Dialog和一些第三方框架,挺多一部分正是用了建造者模式。建造者模式是创建一个复杂对象的创建型模式,有人也称它为生成器模式,它将其构建复杂对象的过程和它的组件解耦,使得构建过程和组件分离开来。比如我们自己DIY一部手机,我们可以根据自己的喜好去选择它的CPU,是麒麟的还是骁龙的,还有它的屏幕, ...原创 2019-08-20 09:16:09 · 277 阅读 · 0 评论 -
设计模式之代理模式
前面的几篇文章讲了简单工厂模式、工厂模式、建造者模式几种设计模式,其中这几种设计模式分创建型设计模式。设计模式分为三大类:第一类:创建型设计模式,常见的有单例模式、简单工厂模式、工厂模式(抽象工厂模式),建造者模式......第二类:结构型设计模式,常见的适配器模式、装饰模式、代理模式、外观模式......第三类:行为型设计模式,策略模式,模板方法模式,观察者模式、迭代器模式.........原创 2019-09-16 13:55:05 · 167 阅读 · 0 评论 -
蓝牙ble实现空中升级功能
这阵子比较懒也比较忙,回到家里就不想弄代码0.0 博客也好久没更新。实在抱歉。这阵子公司App需要实现空中升级的功能。在网上也找了好久毫无头绪。偶然看到了nRF 工具箱的源码。翻了翻,终于把它实现了。今天就来说说空中升级的实现。首先我们需要往项目的build.gradle文件中导入我们空中升级所需要的第三方包:原创 2016-11-17 20:10:59 · 8054 阅读 · 34 评论 -
代码中解除手机已配对的蓝牙设备
这几天被一个问题困扰了很久,就是app里面连接蓝牙设备之后解绑断开,蓝牙回调也显示了断开,但是自己再去搜就搜不到了。找了很久原因发现在手机设置的蓝牙配对列表中发现该设备已被配对,导致手机搜不到。然后就找到一个方法得到手机配对的蓝牙列表然后再通过反射的机制取消蓝牙的配对,到这里之后手机就能搜到了蓝牙。但是之后的每一次连接都需要再重新配对。接下来贴下代码://得到配对的设备列表,清除已配对的设备原创 2016-10-19 11:09:12 · 7438 阅读 · 1 评论 -
监听手机来电与手机短信往蓝牙发送协议实现通讯
因为公司主要做蓝牙手环这块。这阵子负责来电提醒和短信提醒。其实原理比较简单。就是开启一个Service监听手机的来电和短信。然后判断手机跟蓝牙的连接服务是是否连接,已连接的话则根据协议完手环发送来电、短信所需要的协议。不多说了。上代码。首先是Service类原创 2016-07-15 22:17:27 · 3793 阅读 · 5 评论 -
Design下TextInputLayout结合EditText的简单使用
今天写的是Design下的TextInputLayout。稍微介绍一下,一般我们在App上面登录注册页面时,都需要去检测用户输入的内容是否正确,然后给出提醒或错误显示。之前我们都是布局写一大堆代码,显示错误信息,判断控件内容。总的来说比较麻烦。而现在有了TextInputLayout,我们不在需要这么麻烦。TextInputLayout给我们提供了两种功能:1,给EditText添加一原创 2016-08-30 17:29:43 · 500 阅读 · 0 评论 -
Design下FloatingActionButton的简单使用
今天说下Design包下的FloatingActionButton浮动按钮。关于Design的介绍就不说了。上一篇的博文有。大家可以看看。简称FAB,浮动操作按钮一般作为进阶操作的开关,在用户界面中通常是一个漂浮的小圆圈,它有自身独特的动态效果,比如变形、弹出、位移等等,代表着在当前页面上用户的特定的操作。现在说下使用方法,首先需要导入design包。搜索design包然后导入原创 2016-08-22 23:26:02 · 540 阅读 · 0 评论 -
Design包下NavigationView的使用
首先介绍一下由来,只属于个人见解。Design包是5.0之后出现的新特性,其包含了许多新出现且具有自己特色的控件。除今天要说的NavigationView导航布局之外,还有TabLayout、RecyclerView、CardView、FloatActionButton、Snackbar、TextInputLayout,还有协调者布局CoordinatorLayout等等等等。我对于这个的理解原创 2016-08-13 22:14:11 · 4180 阅读 · 3 评论 -
Design下的TabLayout和Fragment和ViewPager联动的简单使用
首先介绍下TabLayout,实际开发中我们经常需要用到Viewpager,而已需要跟头部的Tab实现联动效果。而Design的出现,给我们一种更加方便的UI框架去实现这种效果。今天就介绍它与Viewpager和Fragment之间的联动效果。首先需要先有design包:之后我们的build.gradle文件下多了这样一句代码就ok啦。然后接下就是布局文件:activity_mai原创 2016-08-25 22:06:32 · 2753 阅读 · 3 评论 -
RecycleView和CardView的简单介绍和用法
很久之前在公司上遇到一个需求就是需要将ListView中的item布局改成每张每张卡片的那种样式,那时候还没接触到Design的各种UI框架,也算是挺久之前了。当时基本就慌了,心里骂了很多次什么傻B需求。后来也是自己找了挺久发现了RecylerView,也发现了Design,也学习了这些东西。今天旧事重谈,就写了个简单小Demo,因为在现在公司做的都是手环蓝牙方面的东西,把之前学过,弄过的东西都差原创 2016-09-07 21:31:40 · 1169 阅读 · 0 评论 -
MaterialDesign下的多个UI框架的综合案例详解
写了几篇关于Design下的UI框架,今天打算结合协调者布局CoordinatorLayout及ToolBar等多个Design下的控件。然后集成成一个小Demo供大家学习。不多说了,大家先看下效果图吧。首先是布局文件,大体框架是DrawerLayout里面包含一个NavigationView和一个CoordinatorLayout。CoordinatorLayout中则包括AppBarL原创 2016-09-10 13:03:10 · 1663 阅读 · 0 评论 -
Retrofit的简单介绍使用
今天说下关于网络的东西,公司的项目的网络请求都是用okhttp搭的,前阵子在网上看到Retrofit这东西,它跟okhttp一样都是Square公司,retrofit就是对okhttp做了一层封装。我觉得它对于okhttp的区别最大的一点就是用注解的方式来设置参数请求等。所以可以说RxAndroid跟它算是绝配。今天只是简单玩了下get请求。例子有点基础,我也在探究阶段0.0 好了。接原创 2016-09-29 21:33:54 · 333 阅读 · 0 评论 -
MVP下扫描蓝牙得到列表实例
今天讲下一直让我很痛苦的蓝牙0.0。简单写了个小Demo来说下蓝牙扫描。MVP的架构其实自己也不是很熟悉,自己就简单玩了一下。首先看下需要定义的接口代码:/** * Created by Administrator on 2016/10/18. */public interface IDeviceControlPresenter { /** * 数据刷新与加载原创 2016-10-18 21:20:53 · 615 阅读 · 0 评论 -
垂直和水平滑动刻度尺
公司有个需求需要自定义的滑动设置升高体重的界面。首先感谢github上的这个开源让我学习。https://github.com/LichFaker/ScaleView。因为需求有点不一样。需要自定义颜色。所以在它的基础上改了画线的位置和刻度的颜色。看一下界面。上代码。首先需要有个基础的基类BaseScaleView。public abstract class BaseScaleView ext原创 2016-07-28 15:07:37 · 2670 阅读 · 0 评论