- 博客(40)
- 资源 (4)
- 问答 (2)
- 收藏
- 关注
原创 STM32循迹小车/Android蓝牙控制小车(四)完结篇——Android经典蓝牙开发
STM32循迹小车/Android蓝牙控制小车(完结篇)这是这个系列博文的最后一篇,这篇只讲Android经典蓝牙的应用。在这个系列开篇之前,我并没有接触过Andorid蓝牙开发以及蓝牙协议,在查找资料的时候发现网上关于蓝牙的资料虽然很多,却大多不够完整或者详细,缺少一篇对新手友好的傻瓜式教程,所以在项目过程中我就一直想写一遍详细的傻瓜式教程,让新接触蓝牙开发的朋友少走弯路!...
2020-05-28 22:00:08
2576
5
原创 STM32循迹小车/Android蓝牙控制小车(三)
STM32循迹小车/Android蓝牙控制小车(三)循迹蓝牙小车的第三篇终于来了,这篇开篇先来介绍一下整个开发过程中得构思思路。本来这应该放在第一篇,但是实际思路会因为开发过程中遇到的问题而改变,到今天为止小车的三个目标功能都已经实现。所以在介绍app控制小车之前先来理清一下思路。整个设计软件方面分为两大块:一、STM32作为主控制器,有三种工作模式,三种模式通过开发板上的物理按键或者App虚拟按键来进行切换:1、红外遥控——通过接受解码红外头接收到的遥控信息来控制小车2、循线跟踪——通过循环扫描
2020-05-23 12:58:41
8019
1
原创 STM32循迹小车/Android蓝牙控制小车(二)
自动循迹功能现实一,硬件描述 1、循迹模块五路黑线检测,黑线反馈低电平 2、小车行驶速度通过PWM控制,现实无极调速。因为开发板以及小车自重太重占空比太低的时候下车无法驱动 3、小车马达减速装置不够,小车无法现实太高速度移动。 4、小车方向打太大的时候无法移动。 5、舵机通过周期为20ms不同占空比的方波控制转向二、循迹思路传感器各种情况舵机处理方式:
STM32循迹小车第一天:硬件平台介绍硬件平台:控制模块:正点原子STM32精英开发板驱动模块:L298N两路电机驱动模块,两路pwm控制,正反转控制转向控制:S3010舵机,由20ms脉宽pwm信号控制转向循迹模块:5路光电对管循迹模块RS016蓝牙模块:待定小车平台:10年前飞思卡尔比赛车模软件设计平台:STM32程序开发:MDK5 Keil uVision5Andro...
2020-04-14 21:48:33
3991
6
原创 android 新浪微博平台开发之 ——授权登录
android 新浪微博平台开发一、先需要在新浪微博开放平台注册成为一名开发者:平台地址:http://open.weibo.com/ 1、注册完成后需要进行实名验证。二、在我的应用中创建应用,填写相关信息。1、Android包名: 包名必须是你即将要使用新浪微博平台的应用的包名。 在 AndroidManifest.xml 文件中找到package="android.weibo_gjk
2017-08-11 10:51:43
1176
1
原创 android 计步器
我们经常会看到微信 QQ 以及其他一些运动app里面都有一个计步功能,那它是怎么实现的呢?今天我们就来实现一下,以下代码都是从一个整体项目中抽离出来的,为了理解简单方便我把UI部分数据保存部分全部都去掉了,只有单纯的计步逻辑和算法。log日志显示计步:app只有一个简单的UI来显示步数。编写计步逻辑的流程图,方便理解我的思路: MainActivity :public class MainActi
2017-06-27 08:46:24
8171
原创 android 基于天狗网开放平台的新闻app
偶然在一个QQ群看到有学生在问关于这个平台的事,刚好无聊就登录看了一下。刚好自己自学android到了一个瓶颈。就写了一个基于这个平台的新闻app,平台是免费,而且讲解的很详细,有时候第一次打开比较慢,多试几次等等就好了。这是平台的地址:http://www.tngou.net/ 下面是接口: http://www.tngou.net/blog/show/1296向提供免费平台的前辈致敬!目前我
2017-06-21 10:14:17
975
原创 Android (FragmentTabHost+RadioGroup)实现底部bar
从java算起,自学android有一年了。从一开始的信息满满到现在的迷茫,不知道为了啥?改行做android?根本没底气不自信。放弃?那我一年辛苦不是白费了?闲话不扯。大部分的app底部都有一个导航栏,像微信,QQ。以前我都是自己用textView加一些乱七八糟的东西实现的,代码耦合度高,实现繁杂,可复用性低。因为基础的东西学的差不多了,最近开始接触一些简单的项目,发现框架真的是个好东西。虽然起步
2017-06-15 10:34:25
603
转载 Data Binding 去掉烦人的findViewById
Android 笔记一 、 你可能听说过Jake Wharton的ButterKnife,这个库只需要在定义View变量的时候通过注解传入对应id,随后在onCreate时调用ButterKnife.bind(this)即可完成view的注入,示例如下:class ExampleActivity extends Activity { @BindView(R.id.user) EditText
2017-03-31 16:03:07
620
原创 Android 图片缓存
从读取速度来看内存 > 本地文件 > 网络获取所以最理想的情况是所有数据都缓存在内存中,但是内存大小有限,而且不能永久保存。网络加载图片耗时,耗流量。所以一般需要把图片缓存到本地,以便于下次使用,但是本地缓存目录的内存也不能无限大,所以需要对本地缓存空间进行管理。下面这个类实现了将图片缓存到内存,并且限制了内存中缓存图片的数量。如果图片数量超过缓存上限,通过LinkedHashMap的removeE
2017-03-30 11:58:31
316
原创 CoordinatorLayout 和layout_behavior属性的问题
首先 layout_behavior 必须在 CoordinatorLayout直接子控件才有效果。 layout_behavior 属性指定了一个布局行为。 可以为任何View添加一个Behavior。 Behavior是一系列回调。让你有机会以非侵入的为View添加动态的依赖布局,和处理父布局(CoordinatorLayout)滑动手势的机会。app:layout_scrollFlags
2017-03-17 11:55:18
8857
原创 button 按下改变颜色
在drawrale目录下新建一个xml文件<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/clr_normal" android:state_pressed="f
2017-03-17 11:16:43
2184
原创 android service HttpURLConnection下载网络数据
import android.app.Notification;import android.app.NotificationManager;import android.app.Service;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.o
2017-03-08 19:56:02
548
原创 MaterialDesign之FloatingActionButton(悬浮按钮)
FloatingActionButton是Design Support提供的一个控件,所以使用之前先要添加依赖库: compile 'com.android.support:design:24.2.1'<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/acti
2017-03-03 09:12:26
958
原创 Material Design 之NavigationView(导航视图)
NavigationView(导航视图)有两个部分,头部可以加载一个layout,菜单栏可以加载一个menu文件。一般放在DrawerLayout中使用。NavigationView是Design Support库提供中,先要添加依赖库。 compile 'com.android.support:design:24.2.1' compile 'de.hdodenhof:circlei
2017-03-02 11:18:19
495
原创 Material Design 之 DrawerLayout(滑动菜单)
DrawerLayout包含两个界面,一个主界面和一个隐藏界面。隐藏界面可以通过点击按钮或者滑动屏幕边缘显示出来,一般隐藏界面用来做菜单使用。 DrawerLayout是一个布局,和普通布局使用起来没有多大差别,先在布局文件中添加一个DrawerLayout<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.Drawe
2017-03-02 09:08:07
902
原创 Material Design之Toolbar
控件Toolbar 自定义标题栏首先在 styles.xml 为 APP更换一个不带ActionBar的主题<resources> <!--选择主题,并且重写colorPrimary colorPrimaryDark colorAccent 属性 --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar
2017-02-08 11:29:17
661
原创 android ListView使用详解
import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter
2017-02-06 16:42:56
448
原创 android 百度地图GPS定位
一、先在百度地图开发平台获取一个keyhttp://lbsyun.baidu.com/apiconsole/key/create SHA1码获得: 填写完成提交后会自动生成一个key,拷贝留用。二、下载百度地图SDK http://lbsyun.baidu.com/sdk/download?selected=location_all下载基础定位和基础地图,解压备用三、创建过程,工程名字要和第一
2017-01-10 17:17:32
3300
1
原创 android JSON数据解析
网络下载的数据主要有两种格式XML和JSON,但是这两种数据格式都有自己的格式符,解析数据就是从这两种格式的数据中取出我们需要的数据,去掉格式符。本文记录了两种常用JSON解析方法:XML数据解析方法:http://blog.youkuaiyun.com/q296264785/article/details/53897107JSON数据解析之 JSONObject 解析:vate void withJSONOb
2016-12-28 16:08:04
373
原创 android XML数据解析
网络下载的数据主要有两种格式XML和JSON,但是这两种数据格式都有自己的格式符,解析数据就是从这两种格式的数据中取出我们需要的数据,去掉格式符。本文记录了两种常用XML解析方法:XML数据解析常用方法之PULL解析方法:private void XMLWithPull(String xmlData){//XML数据解析 pull方式 try { //1、获得
2016-12-27 17:04:50
298
原创 android SQLite数据库开源框架LitePal的使用详解
使用过数据库的同学应该都会有感觉,SQLiteDatabase操作数据库的时候参数多操作麻烦。基于对象关系映射模式的开源数据库框架LitePal使得数据库的操作变得简单易用。LitePal将我们常用的数据库功能进行了封装,我们只要调用方法就能轻松完成对数据库的增删查找操作。下面就详细记录了LitePal的使用步骤:一、在build.gradle文件 dependencies闭包中添加LitePal依
2016-12-20 08:51:59
982
1
原创 android 怎么编写一个简单的聊天界面
使用RecyclerView来实现一个简单的聊天界面。 准备:需要两张.9.png的图片来作为聊天气泡的背景图。需要一张图片作为聊天背景图。 1、先建立一个主UI的布局文件,里面需要一个RecyclerView,一个SEND按钮,一个Edtitext输入框。 2、建立一个RecyclerView适配器布局文件,提供左边和右边两个气泡。 3、把每条发送的信息加载到RecyclerView的子
2016-12-14 08:48:56
1531
原创 android RecyclerView 瀑布流使用详解
为了解决ListView运行效率低,不能实现横向滚动的确定,Android在V7的包中新增了RecyclerView控件,RecyclerView除了可以轻松实现ListView的功能外还优化了ListView的不足之处以及能实现横向滚动和瀑布流。为了方便理解,先用RecyclerView来实现ListView的功能: 很丑是不是? 没关系,今天我们的主角是瀑布流。这个就先将就一下,我总结了一下实
2016-12-12 13:02:43
1321
原创 android BroadcastReceiver广播使用详解
BroadcastReceiver广播有两种发送的方式: 1、普通广播---接收方没有先后顺序 2、有序广播---接收方有先后顺序,按照设置的顺序接收广播BroadcastReceiver广播有两种注册方式: 1、静态注册----在清单文件中注册 2、动态注册----在程序中注册(动态注册的广播使用完一定要注销)1、静态注册 —-发送普通广播 * 1、创建一个Broa
2016-12-07 08:38:15
509
原创 Android Messenger进程间双向通信详解
Android Messenger进程间双向通信详解在实现Messenger通信之前,我们先要完成一个前提条件:将一个组件通过调用bindService()绑定到服务上。这是将组件绑定到服务上我们要做的事情: 要把客户端绑定到服务上,你必须:1、实现ServiceConnection。 你的实现代码必须重写两个回调方法: onServiceConnected
2016-12-03 15:58:20
706
原创 android BoundService的一般步骤
android BoundService的一般步骤在客服端(Activity中)需要至少完成: * 1、通过bindService()绑定服务。 * 2、通过一个ServiceConnection的实现类,android在创建客服端和服务的关联时会调用serviceConnection中的OnServiceConnection()方法。 * 3、OnServiceConnection()方法的其
2016-12-01 09:46:36
1119
原创 android Service实现后台下载
功能:点击按钮,启动一个Service下载指定地址的内容,并且将内容保存到Sdcard卡,下载时发送一个进度条通知到通知栏。 Activity 类:import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import androi
2016-11-29 16:47:36
2140
1
原创 android ViewPager嵌套Fragment实现侧滑翻页
ViewPager嵌套Fragment实现侧滑翻页PagerAdapter有两个子类:FragmentPagerAdapter和FragmentStatePagerAdapter,他们都是专门用来给支持包中出现的ViewPager进行数据适配的。 FragmentPagerAdapter拥有自己的缓存策略,当和ViewPager配合使用的时候,会缓存当前Fragment以及左边一个、右边一个,一
2016-11-24 09:40:44
721
原创 android ViewPager 使用详解
ViewPager 使用详解使用ViewPagerg构建一个视图组,实现对视图的侧滑切换。ViewPager是一个V4的组件,在XML中通过android.support.v4.view.ViewPager的方式调用。工程目录: 效果图: MainActivity :import java.util.ArrayList;import java.util.List;import android.
2016-11-23 11:11:52
406
原创 android 使用CursorLoader读取手机通讯录
使用CursorLoader读取手机通讯录今天get到一个新技能,使用CursorLoader异步加载数据通讯录数据。实现功能:通过读取手机通讯录所有联系人的名字及联系号码,将数据通过CursorLoader异步加载到ListView上。这是效果图。因为模拟器上我只存了一个联系人,使用效果不明显,我将apk下载到手机上安装读取联系人完全没有问题,因为联系人关系到一些不可描述的小秘密,就不截图出来了
2016-11-18 17:07:12
886
原创 android 使用CursorLoader异步加载SQLite数据
使用CursorLoader异步加载SQLite数据设及到的知识点:1、对SQLite数据的操作。 关于SQLite的使用:http://blog.youkuaiyun.com/q296264785/article/details/531557392、CursorLoader加载器异步加载数据 同步加载数据的方法:http://blog.youkuaiyun.com/q296264785/article/d
2016-11-18 10:44:46
1079
原创 android 存储网络数据到Sdcard
android 使用HTTP下载网络图片并保存到Sdcard卡本文实现了两个功能: 1、从网络下载图片。 2、将图片保存到Sdcard卡。文件目录: 效果图: 先创建两个类,分别实现两个功能。HTTP类,从网络下载图片:import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient
2016-11-17 08:46:35
510
原创 android Fragment与Activity之间数据交互
本文实现了两个功能:1、在Fragment中通过getActivity获取activity中组件在通过组件获取内容的方法获取activity中的数据。2、在Activity中通过接口回调的方法获取Fragment中组件的值。目录结构: 效果图:MainActivity代码:import android.app.Activity;import android.app.FragmentManag
2016-11-15 16:32:09
657
原创 Android Fragmnet-Fragment数据交换以及ListFragment的使用
Android Fragmnet-Fragment数据交换以及ListFragment的使用 我把Activity的视图分成三个部分,并且在第二部分加载一个listFragment、第三部分加载一个Fragment。用来实现Fragmnet-Fragment、Activity-Fragment的数据交换测试。下面是效果图:先是布局文件: 一共有4个XML文件,第一个是Activity的布局
2016-11-15 11:15:44
1183
原创 android 使用SimpleCursorAdapter将SQLite数据显示到ListView
android 使用SimpleCursorAdapter将SQLite数据显示到ListView我们知道,使用ListView的时候需要一个数据源,可以是本地数据,可以是网络数据。本篇博文使用SQLite为ListView提供数据源。一、首先我们需要创建一个数据库表格。 a、建立一个类 DBHelper 继承 SQLiteOpenHelper .public class DBHelper
2016-11-15 09:21:19
8627
原创 android 内容提供者(ContentProvider)共享SQLite
android 内容提供者(ContentProvider)共享SQLiteContentProvider为android提供了一种不同应用之间共享数据的可能,次列提供ContentProvider将SQLite的数据库表 class 共享出来。1、创建类DBProvider继承ContentProvider,并且重写以下方法: a、onCreate() //创建 b、query(U
2016-11-14 14:48:47
666
原创 andorid SQLite 的使用详解
andorid SQLite 的使用详解1、创建数据库 a、编写一个类 DBHelper 继承 SQLiteOpenHelper。b、重写 SQLiteOpenHelper的三个方法:onCreate(第一次创建的时候调用此方法),onUpgrade(更新的时候调用此方法:参数newVersion 大于 oldBersion时调用),onOpen(每次打开数据库文件时调用)。c、
2016-11-14 09:16:48
1488
BaiduLBS_Test - 完成定位和地址读取功能.rar
2020-06-30
Android计步器源码
2020-06-30
android studio 编译的app在4.4.4版本的安卓手机上运行不了?
2016-12-14
Android中Fragment和Activity间数据交换的问题
2016-11-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人