自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

修一技之长

学习是一个漫长的过程,有时候枯燥无味,有时候充满乐趣。

  • 博客(40)
  • 资源 (4)
  • 问答 (2)
  • 收藏
  • 关注

原创 STM32循迹小车/Android蓝牙控制小车(四)完结篇——Android经典蓝牙开发

STM32循迹小车/Android蓝牙控制小车(完结篇)这是这个系列博文的最后一篇,这篇只讲Android经典蓝牙的应用。在这个系列开篇之前,我并没有接触过Andorid蓝牙开发以及蓝牙协议,在查找资料的时候发现网上关于蓝牙的资料虽然很多,却大多不够完整或者详细,缺少一篇对新手友好的傻瓜式教程,所以在项目过程中我就一直想写一遍详细的傻瓜式教程,让新接触蓝牙开发的朋友少走弯路!...

2020-05-28 22:00:08 2362 5

原创 STM32循迹小车/Android蓝牙控制小车(三)

STM32循迹小车/Android蓝牙控制小车(三)循迹蓝牙小车的第三篇终于来了,这篇开篇先来介绍一下整个开发过程中得构思思路。本来这应该放在第一篇,但是实际思路会因为开发过程中遇到的问题而改变,到今天为止小车的三个目标功能都已经实现。所以在介绍app控制小车之前先来理清一下思路。整个设计软件方面分为两大块:一、STM32作为主控制器,有三种工作模式,三种模式通过开发板上的物理按键或者App虚拟按键来进行切换:1、红外遥控——通过接受解码红外头接收到的遥控信息来控制小车2、循线跟踪——通过循环扫描

2020-05-23 12:58:41 7595 1

原创 STM32循迹小车/Android蓝牙控制小车(二)

自动循迹功能现实一,硬件描述 1、循迹模块五路黑线检测,黑线反馈低电平 2、小车行驶速度通过PWM控制,现实无极调速。因为开发板以及小车自重太重占空比太低的时候下车无法驱动 3、小车马达减速装置不够,小车无法现实太高速度移动。 4、小车方向打太大的时候无法移动。 5、舵机通过周期为20ms不同占空比的方波控制转向二、循迹思路传感器各种情况舵机处理方式:![在这里插入图片描述](...

2020-04-18 22:38:24 3460 3

原创 STM32循迹小车/Android蓝牙控制小车(一)

STM32循迹小车第一天:硬件平台介绍硬件平台:控制模块:正点原子STM32精英开发板驱动模块:L298N两路电机驱动模块,两路pwm控制,正反转控制转向控制:S3010舵机,由20ms脉宽pwm信号控制转向循迹模块:5路光电对管循迹模块RS016蓝牙模块:待定小车平台:10年前飞思卡尔比赛车模软件设计平台:STM32程序开发:MDK5 Keil uVision5Andro...

2020-04-14 21:48:33 3648 5

原创 android 新浪微博平台开发之 ——授权登录

android 新浪微博平台开发一、先需要在新浪微博开放平台注册成为一名开发者:平台地址:http://open.weibo.com/ 1、注册完成后需要进行实名验证。二、在我的应用中创建应用,填写相关信息。1、Android包名: 包名必须是你即将要使用新浪微博平台的应用的包名。 在 AndroidManifest.xml 文件中找到package="android.weibo_gjk

2017-08-11 10:51:43 1063 1

原创 android 计步器

我们经常会看到微信 QQ 以及其他一些运动app里面都有一个计步功能,那它是怎么实现的呢?今天我们就来实现一下,以下代码都是从一个整体项目中抽离出来的,为了理解简单方便我把UI部分数据保存部分全部都去掉了,只有单纯的计步逻辑和算法。log日志显示计步:app只有一个简单的UI来显示步数。编写计步逻辑的流程图,方便理解我的思路: MainActivity :public class MainActi

2017-06-27 08:46:24 7961 6

原创 android 基于天狗网开放平台的新闻app

偶然在一个QQ群看到有学生在问关于这个平台的事,刚好无聊就登录看了一下。刚好自己自学android到了一个瓶颈。就写了一个基于这个平台的新闻app,平台是免费,而且讲解的很详细,有时候第一次打开比较慢,多试几次等等就好了。这是平台的地址:http://www.tngou.net/ 下面是接口: http://www.tngou.net/blog/show/1296向提供免费平台的前辈致敬!目前我

2017-06-21 10:14:17 916

原创 Android (FragmentTabHost+RadioGroup)实现底部bar

从java算起,自学android有一年了。从一开始的信息满满到现在的迷茫,不知道为了啥?改行做android?根本没底气不自信。放弃?那我一年辛苦不是白费了?闲话不扯。大部分的app底部都有一个导航栏,像微信,QQ。以前我都是自己用textView加一些乱七八糟的东西实现的,代码耦合度高,实现繁杂,可复用性低。因为基础的东西学的差不多了,最近开始接触一些简单的项目,发现框架真的是个好东西。虽然起步

2017-06-15 10:34:25 527

转载 tablayout 属性详细介绍

http://www.jianshu.com/p/2b2bb6be83a8

2017-04-27 15:55:13 429

转载 git图像化界面GUI的使用

http://www.cnblogs.com/wangzhongqiu/p/6251054.html

2017-04-13 10:12:34 475

转载 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 584

原创 Android 图片缓存

从读取速度来看内存 > 本地文件 > 网络获取所以最理想的情况是所有数据都缓存在内存中,但是内存大小有限,而且不能永久保存。网络加载图片耗时,耗流量。所以一般需要把图片缓存到本地,以便于下次使用,但是本地缓存目录的内存也不能无限大,所以需要对本地缓存空间进行管理。下面这个类实现了将图片缓存到内存,并且限制了内存中缓存图片的数量。如果图片数量超过缓存上限,通过LinkedHashMap的removeE

2017-03-30 11:58:31 289

原创 CoordinatorLayout 和layout_behavior属性的问题

首先 layout_behavior 必须在 CoordinatorLayout直接子控件才有效果。 layout_behavior 属性指定了一个布局行为。 可以为任何View添加一个Behavior。 Behavior是一系列回调。让你有机会以非侵入的为View添加动态的依赖布局,和处理父布局(CoordinatorLayout)滑动手势的机会。app:layout_scrollFlags

2017-03-17 11:55:18 8147

原创 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 2095

原创 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 504

原创 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 918

原创 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 442

原创 Material Design 之 DrawerLayout(滑动菜单)

DrawerLayout包含两个界面,一个主界面和一个隐藏界面。隐藏界面可以通过点击按钮或者滑动屏幕边缘显示出来,一般隐藏界面用来做菜单使用。 DrawerLayout是一个布局,和普通布局使用起来没有多大差别,先在布局文件中添加一个DrawerLayout<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.Drawe

2017-03-02 09:08:07 842

原创 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 616

原创 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 395

原创 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 3247 6

原创 android JSON数据解析

网络下载的数据主要有两种格式XML和JSON,但是这两种数据格式都有自己的格式符,解析数据就是从这两种格式的数据中取出我们需要的数据,去掉格式符。本文记录了两种常用JSON解析方法:XML数据解析方法:http://blog.csdn.net/q296264785/article/details/53897107JSON数据解析之 JSONObject 解析:vate void withJSONOb

2016-12-28 16:08:04 278

原创 android XML数据解析

网络下载的数据主要有两种格式XML和JSON,但是这两种数据格式都有自己的格式符,解析数据就是从这两种格式的数据中取出我们需要的数据,去掉格式符。本文记录了两种常用XML解析方法:XML数据解析常用方法之PULL解析方法:private void XMLWithPull(String xmlData){//XML数据解析 pull方式 try { //1、获得

2016-12-27 17:04:50 237

原创 android SQLite数据库开源框架LitePal的使用详解

使用过数据库的同学应该都会有感觉,SQLiteDatabase操作数据库的时候参数多操作麻烦。基于对象关系映射模式的开源数据库框架LitePal使得数据库的操作变得简单易用。LitePal将我们常用的数据库功能进行了封装,我们只要调用方法就能轻松完成对数据库的增删查找操作。下面就详细记录了LitePal的使用步骤:一、在build.gradle文件 dependencies闭包中添加LitePal依

2016-12-20 08:51:59 896 1

原创 android 怎么编写一个简单的聊天界面

使用RecyclerView来实现一个简单的聊天界面。 准备:需要两张.9.png的图片来作为聊天气泡的背景图。需要一张图片作为聊天背景图。 1、先建立一个主UI的布局文件,里面需要一个RecyclerView,一个SEND按钮,一个Edtitext输入框。 2、建立一个RecyclerView适配器布局文件,提供左边和右边两个气泡。 3、把每条发送的信息加载到RecyclerView的子

2016-12-14 08:48:56 1430

原创 android RecyclerView 瀑布流使用详解

为了解决ListView运行效率低,不能实现横向滚动的确定,Android在V7的包中新增了RecyclerView控件,RecyclerView除了可以轻松实现ListView的功能外还优化了ListView的不足之处以及能实现横向滚动和瀑布流。为了方便理解,先用RecyclerView来实现ListView的功能: 很丑是不是? 没关系,今天我们的主角是瀑布流。这个就先将就一下,我总结了一下实

2016-12-12 13:02:43 1172

原创 android BroadcastReceiver广播使用详解

BroadcastReceiver广播有两种发送的方式: 1、普通广播---接收方没有先后顺序 2、有序广播---接收方有先后顺序,按照设置的顺序接收广播BroadcastReceiver广播有两种注册方式: 1、静态注册----在清单文件中注册 2、动态注册----在程序中注册(动态注册的广播使用完一定要注销)1、静态注册 —-发送普通广播 * 1、创建一个Broa

2016-12-07 08:38:15 472

原创 Android Messenger进程间双向通信详解

Android Messenger进程间双向通信详解在实现Messenger通信之前,我们先要完成一个前提条件:将一个组件通过调用bindService()绑定到服务上。这是将组件绑定到服务上我们要做的事情: 要把客户端绑定到服务上,你必须:1、实现ServiceConnection。 你的实现代码必须重写两个回调方法: onServiceConnected

2016-12-03 15:58:20 593

原创 android BoundService的一般步骤

android BoundService的一般步骤在客服端(Activity中)需要至少完成: * 1、通过bindService()绑定服务。 * 2、通过一个ServiceConnection的实现类,android在创建客服端和服务的关联时会调用serviceConnection中的OnServiceConnection()方法。 * 3、OnServiceConnection()方法的其

2016-12-01 09:46:36 1056

原创 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 2006 1

原创 android ViewPager嵌套Fragment实现侧滑翻页

ViewPager嵌套Fragment实现侧滑翻页PagerAdapter有两个子类:FragmentPagerAdapter和FragmentStatePagerAdapter,他们都是专门用来给支持包中出现的ViewPager进行数据适配的。 FragmentPagerAdapter拥有自己的缓存策略,当和ViewPager配合使用的时候,会缓存当前Fragment以及左边一个、右边一个,一

2016-11-24 09:40:44 626

原创 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 367

原创 android 使用CursorLoader读取手机通讯录

使用CursorLoader读取手机通讯录今天get到一个新技能,使用CursorLoader异步加载数据通讯录数据。实现功能:通过读取手机通讯录所有联系人的名字及联系号码,将数据通过CursorLoader异步加载到ListView上。这是效果图。因为模拟器上我只存了一个联系人,使用效果不明显,我将apk下载到手机上安装读取联系人完全没有问题,因为联系人关系到一些不可描述的小秘密,就不截图出来了

2016-11-18 17:07:12 822

原创 android 使用CursorLoader异步加载SQLite数据

使用CursorLoader异步加载SQLite数据设及到的知识点:1、对SQLite数据的操作。 关于SQLite的使用:http://blog.csdn.net/q296264785/article/details/531557392、CursorLoader加载器异步加载数据 同步加载数据的方法:http://blog.csdn.net/q296264785/article/d

2016-11-18 10:44:46 1034

原创 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 472

原创 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 613

原创 Android Fragmnet-Fragment数据交换以及ListFragment的使用

Android Fragmnet-Fragment数据交换以及ListFragment的使用 我把Activity的视图分成三个部分,并且在第二部分加载一个listFragment、第三部分加载一个Fragment。用来实现Fragmnet-Fragment、Activity-Fragment的数据交换测试。下面是效果图:先是布局文件: 一共有4个XML文件,第一个是Activity的布局

2016-11-15 11:15:44 1113

原创 android 使用SimpleCursorAdapter将SQLite数据显示到ListView

android 使用SimpleCursorAdapter将SQLite数据显示到ListView我们知道,使用ListView的时候需要一个数据源,可以是本地数据,可以是网络数据。本篇博文使用SQLite为ListView提供数据源。一、首先我们需要创建一个数据库表格。 a、建立一个类 DBHelper 继承 SQLiteOpenHelper .public class DBHelper

2016-11-15 09:21:19 8406 1

原创 android 内容提供者(ContentProvider)共享SQLite

android 内容提供者(ContentProvider)共享SQLiteContentProvider为android提供了一种不同应用之间共享数据的可能,次列提供ContentProvider将SQLite的数据库表 class 共享出来。1、创建类DBProvider继承ContentProvider,并且重写以下方法: a、onCreate() //创建 b、query(U

2016-11-14 14:48:47 606

原创 andorid SQLite 的使用详解

andorid SQLite 的使用详解1、创建数据库 a、编写一个类 DBHelper 继承 SQLiteOpenHelper。b、重写 SQLiteOpenHelper的三个方法:onCreate(第一次创建的时候调用此方法),onUpgrade(更新的时候调用此方法:参数newVersion 大于 oldBersion时调用),onOpen(每次打开数据库文件时调用)。c、

2016-11-14 09:16:48 1393

BaiduLBS_Test - 完成定位和地址读取功能.rar

android 百度地图GPS定位。通过注册百度开发者平台,利用百度地图api,将导航,定位,地图等功能应用到自己的app

2020-06-30

Android计步器源码

Android计步器。我们经常会看到微信 QQ 以及其他一些运动app里面都有一个计步功能,那它是怎么实现的呢? 今天我们就来实现一下,以下代码都是从一个整体项目中抽离出来的,为了理解简单方便我把UI部分数据保存部分全部都去掉了,只有单纯的计步逻辑和算法。

2020-06-30

BroadcastReceiver电量监控

BroadcastReceiver电量监控

2016-12-07

使用CursorLoader异步加载SQLite数据源码

android 使用CursorLoader异步加载SQLite数据源码

2016-11-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除