Android项目:天气预报
一. 运行效果以及源码1.gif图效果
2.源码地址WeatherForecast
二.主要的思路1. 定位使用百度地图提供的Android地图SDK中的定位功能获取到当前位置的经纬度信息。
参考的开发者文档地址是:http://lbsyun.baidu.com/index.php?title=android-locsdk。
2.使用百度提供的根据经纬度信息返回城市信息的API接口http://api.map.baidu.com/geocoder?output=json&location=23.131427,113.379763&ak=esNPFDwwsXWtsQfw4NMNmur1。
3.天气信息的来源是百度地图的天气APIhttp://api.map.baidu.com/telematics/v3/weather?location=%E9%87%8D%E5%BA%86&output=json&ak=FkPhtMBK0HTIQNh7gG4cNUttSTyr0nzo](http://api.map.baidu.com/telematics/v3/wea ...
算法分析设计-概率算法
一. 概率算法概率算法(Randomized algorithm)
二. 三门问题1.题目描述
2.代码123456789101112131415161718192021222324252627282930313233public class ThreeDoor { public static void main(String[] args) { int trial_num = 10000; int change_revenue; int no_change_revenue; //选手没有改变选择的情况下,10000次下成功的概率 no_change_revenue = 0; for (int i = 0; i < trial_num; i++) { int real = new Random().nextInt(3); int choose = n ...
Android随笔-style的使用
一. 笔记Android系统更改状态栏字体颜色
12345678910111213141516171819<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent< ...
Hexo-部署到个人的云服务器
一. 购买云服务器打开 腾讯云,选购你想要的云服务器,我感觉购买的时候选择包年包月计费会好一点。
二. Hexo 博客部署到腾讯云1. 进入到云服务器中登录之后可以选择密码或者秘钥,默认密码好像就是你腾讯云账号的密码。
我选择的是秘钥的登录方式,你获取秘钥的时候会在你的电脑上生成一个秘钥文件,每次登录的时候使用它就好,我觉得很方便。
2. 云服务器端配置 git① 安装依赖库和编译工具
12345//1.安装依赖库:yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel //2.安装编译工具:yum install gcc perl-ExtUtils-MakeMaker package
② 下载 git
12345//1.选择一个目录来存放下载下来的 git 安装包。这里选择了/usr/local/src 目录cd /usr/local/src //2.到官网找一个新版稳定的源码包下载到 /usr/local/src 文件夹里wget https://www.kernel.org/pu ...
自定义View-XLNewBottomView
一. 前言完善之前的自定义View-XLBottomView
Github地址:XLNewBottomView
二. 问题概述我们先看,与之前不同的地方,之前的子Item,我是想使用我之前写的自定义View:自定义View-XLItem/。
但是由于我使用之后没有显示出来,就换成了代码里面的 MyItem类 作为代替。
在这篇文章中,我通过使用 XLNewItem类 来解决过去的问题。
在 XLItem类中,我是使用 xml文件 加载布局的,肯定在那一部分出现了问题。由于父视图肯定会在 onLayout方法中 让子视图调用其 layout 方法。那么我就在 子视图的 onLayout方法 中使用代码添加控件。
三. XLNewItem的内容1. 自定义属性的文件12345678910111213141516<declare-styleable name="XLNewItem"> <!--图标--> <attr name="icon_id" format="reference"/> ...
自定义View-FloatLayout
一. 前言继承ViewGroup类可以用来重新定义一种布局,只是这种方式比较复杂,需要去实现ViewGroup的测量和布局过程以及处理子元素的测量和布局。组合View也可以采用这种方式来实现,只是需要处理的细节更复杂而已。
我们这里来实现一个流式布局,什么是流式布局呢?流式布局就是加入此容器的View从左往右依次排列,如果当前行的宽度不够装进下一个View,就会自动将该View放到下一行中去。如下图所示:
1. 需求分析① 流式布局需要对每个子View进行布局,即从左往右依次摆放,当前行的宽度不够则从下一行开始。
② 流式布局需要测量和计算自身的宽高。
③ 流式布局需要处理margin和padding等细节。
④ 流式布局需要对外提供一些自定义属性,方便用户去使用。比如可以设置行间距和水平间距等等。
2. 实现步骤① 自定义属性。
② 解析自定义属性以及对外提供一些设置属性的接口等。
③ 重写onMeasure(),实现自身的测量过程。
④ 重写onLayout(),对子View的位置进行布局。
⑤ 使用自定义View。
二. 代码实战1. 自定义属性123456789< ...
算法分析设计-分支定界
一. 分治定界法分支定界(Branch and bound):回溯算法的一个改进。贪心拓展空间并修剪劣枝。
贪心 + 遍历 + 剪枝:
一个解由多个顺序子阶段决策构成。
解空间构成一课树。
每个节点中计算定界(上界或下界)值。
从最优定界节点继续拓展求解。
一旦得到一个解,修剪定界值劣于目前解的分治。
二. 0-1背包问题1.题目描述Knapsack Problem
2.代码
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133/** * 分治定界- ...
Android框架模式-MVVM
一. 前言1. 介绍MVVM全名是Model-View-ViewModel,MVVM可以看作MVP的升级版。
Model:模型层,负责处理数据的加载或存储。与MVP中的M一样。
View:视图层,负责界面数据的展示,与用户进行交互。与MVP中的V一样。
ViewModel:视图模型,负责完成View于Model间的交互,负责业务逻辑-
2. 作用降低View和控制模块的耦合,减轻了视图的压力。
3. 流程
View与ViewModel进行绑定,能够实现双向的交互。ViewModel数据改变时,View会相应变动UI,反之亦然。
ViewModel进行业务逻辑处理,通知Model去更新。
Model数据更新后,把新数据传递给ViewModel。
二. MVC实例还是以点击按钮对数字+1为例子,将其改造成MVVM模式。与MVP不同的地方是,ViewModel会跟View进行绑定。这里会用到Android的 Data Binding。关于Data Binding,可以看下这篇文章介绍:Data Binding Library。
使用的时候需要到对应模块的build.gradle文件中 ...