- 博客(103)
- 资源 (62)
- 问答 (2)
- 收藏
- 关注
原创 垂直跑马灯,广告轮播
主要是记录一下项目中的一些效果,方便以后同样的需求直接过来copy看到这个需求的时候去网上找了好久,都是一个textView的滚动,满足不了需求.最后只能动手了,原来很简单,就是2个view来回倒腾,搞个动画,就行了布局2个LinearLayout,里面放了TextViw,隐藏其中一个LinearLayout<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.a
2020-05-18 11:11:27 520
原创 A2dp连接流程(android8及之前版本)
前言Android P在a2dp协议有些许改动,支持多A2dp设备同时连接,流程上有变化,以下是记录Android O及以前的A2dp设备连接流程,以备我后续忘记时查阅.正文先简单讲讲应用层调用绑定和连接过程扫描到设备后点击设备列表,通过反射调用BluetoothDevice的createBond方法发起绑定 private void createBond(BluetoothDevice...
2019-07-09 13:52:05 8903 2
原创 Android蓝牙-设备类型之getMajorDeviceClass
废话做蓝牙framework已经一年多了,前段时间不太忙,自己做了一个蓝牙demo,遇到坑也不少,在这里记录一下,以便以后碰到能迅速查阅设备连接的时候需要通过设备的类型来创建不同的profile:int deviceType = device.getBluetoothClass().getMajorDeviceClass();下面来一步步分析底层是怎么得到这个deviceType先看de...
2019-01-25 11:45:42 10011
原创 虾扯蓝牙(一)获取蓝牙当前状态,监听蓝牙手动开关,代码开关蓝牙
前言半年没有更新博客了,首要原因就是我太懒了,其次是换了新工作,新环境,一直都处于适应与学习阶段,因为涉及到的领域以前都是没接触的–有幸外派到海尔做智能家居,第一次到这种大的公司来敲代码,很多东西都和之前不太一样了,以前一个需求只要做出来就行,不管你用什么方式,现在都是必须用什么实现,比如:代码架构必须是clean architecture干净架构,干净架构的presentation层必须用MVVP
2017-12-09 13:23:02 1018
原创 高德地图定位
最近的项目里面需要定位,就弄了弄高德地图,以前觉得百度地图接入简单,弄完高德地图发现更加简单 现总结一下,以后需要直接过来copy代码1,官网后台注册,创建App,然后就是添加新Key key名称随便取发布版安全码SHA1和包名这东西点击链接自己按照步骤弄:点击查看步骤我之前就是偷懒,在以前别人留下的项目里面复制的key,最后定位不出来,定位地址为空,然后就过来弄这个了,弄完就能正常定位了,
2017-06-21 17:59:32 846
原创 炒现饭之友盟推送的简单实现
万能的第三方第一步:注册账号并创建应用那倒app_key和app_secret 第二步:下载SDK文档地址和sdk下载地址第三步:将下载的文件解压,里面有一个PushSDK,将其作为module导入项目中第四步:配置manifast<meta-data android:name="UMENG_APPKEY" android:value="593e2f
2017-06-12 15:55:13 682
原创 2017.6.9关于集成最新友盟第三方登录SDK遇到的问题以及改进
1,最新版的jar包变少了2,友盟现在推荐的是不去调用授权的方法,直接去拉取用户信息方法由原来的请求授权mShareAPI.getPlatformInfo(LoginActivity.this, platform, umAuthListener);变成了直接去拉取信息 mShareAPI.getPlatformInfo(LoginActivity.this, platform, umAuthList
2017-06-09 19:39:52 933
转载 几行代码快速集成二维码扫描库
转至:一片枫叶的专栏前言本文将讲解一下我最近写的一个快速集成二维码扫描库,这里需要说明的是其核心的实现扫描的功能,是通过调用ZXing库实现的。内部App中使用到了二维码扫描功能,但是网上找了一些关于二维码扫描的例子,只是我在集成的时候发现通过Android studio集成zxing二维码库不是特别方便,由于我就有了将其制作成标准库的想法,也就有了本文即快速集成二维码扫描库。 本文的项目地址是在
2017-06-08 13:27:35 665
原创 切换头像,拍照或者相册选择后剪裁
这个功能基本每个项目都会有,每次都要去翻看以前的项目,感觉不好,这里记录一下,以后需要的时候直接过来复制就行了,1.首先是点击头像弹出一个选择框,让用户选择照相机或者打开相册2,如果点击拍照就去调用系统照相机case R.id.photo_take://照相的监听 try { //调用系统照相机,注意,我这里没有
2017-06-07 15:25:40 769
原创 关于在一个页面去finish其他的页面,也可以调用其他页面的方法
首先你要在要被关闭的页面声明一个变量 public static PayActivity instance;然后在onCreate方法里面复制 instance = this;在其他页面你想关闭这个页面: PayActivity.instance.finish();这样就关闭了这个 PayActivity
2017-05-19 10:20:14 538
原创 WebView加载Html的图片文字,或者图文混排
<section class="wwei-editor"><blockquote style="padding: 10px; margin: 5px 0px 0px; white-space: normal; max-width: 100%; line-height: 25px; font-size: 14px; font-family: arial, helvetica, sans-serif;
2017-05-19 10:14:27 1449
原创 Go语言学习(一)下载安装Go编译器,并配置环境变量
这段时间,利用开发的闲暇之余学习一下Go语言,步骤和我刚学Java时候一样下载地址(1.8版本的):点击下载Go语言编译器下载完成后解压,双击安装,一路下一步记住你安装的路径,一会配置环境变量的时候要用到,完成后如下: api — 目录,包含所有API列表,方便IDE使用 bin— 目录,存放编译后的可执行文件 doc— 目录,帮助文档 pkg— 目录,存放编译后的包文件。pkg中的文件是G
2017-05-13 14:28:03 4532 3
原创 用建造者模式,为你创建一个女朋友
什么是建造者模式( 摘自百度百科) 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。啥意思呢比如你要创建一个女朋友,他有很多的属性,比如:性别,年龄,身高,体重,类型等等,虽然每个女朋友都有这些属性,但是每个人找女朋友的要求都是不一样的,有的人喜欢男的,有的人喜欢女的,有的喜欢胖的,不同的人可以根据自己的喜好去建造不同的女朋友,我们不需要
2017-04-24 11:40:37 1396
原创 利用CountDownTimer类几行代码实现倒计时功能
按照惯例是先看看效果 去年我也写过实现倒计时功能的博客,当时用的是Timer类,代码相对来说还比较多,今天用到的这个类似系统封装好的倒计时类,实现起来比较简单,源码也简单易懂,具体实现代码 //拿到countDownTimer对象,参数1:一共多少毫秒,参数2:间隔多少毫秒 CountDownTimer countDownTimer = new CountDownTimer(10
2017-04-21 10:42:17 2186
原创 RecyclerView展示多种布局
按照惯例 先看看效果图简介最上面是一个轮播图,然后下面是一个横向滑动的频道,然后下面就是一个GridView,再下面就是正常的布局显示了 当然这还不算是很复杂的布局,我这边只是讲讲原理和实现步骤,更多复杂布局可以根据这个去扩展原理给不同position的item设置不同的layout布局, 绑定不同的ViewHolder实现步骤1,定义不同的viewType常量(非必须) 2,在getItemV
2017-04-19 14:22:44 11885 13
原创 动态添加未知个View,并动态设置点击事件
先看看效果有时候,你不知道需求里面有几个View,要根据后台传的个数来动态添加撸代码因为是可以横向滑动的,所有我用一个HorizontalScrollView包裹一个LinearLayout,在LinearLayout里面动态add需要的View布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http:/
2017-04-13 10:02:21 7317
原创 关于Android 6.0运行时权限的一些理解和权限处理的三方库的应用
运行时权限:就是在手机运行中需要运用到什么权限就去申请授权什么权限; 这个是从Android 6.0出来的,在以往的Android版本里,权限只是在第一次安装的时候一次性全部授权,这就导致很多app一次申请n多个权限,私下里偷偷不知道在你手机里干什么,说不定你的艳照就被被人获取到了,基于这些个安全的考虑,所以推出了运行时权限这一说当然,也不是所有权限都需要在运行的时候去申请授权,有些不涉及到隐私等
2017-03-30 13:16:03 3909
原创 收集大牛的炫酷效果
本文收集的是博客或者github上大神的炫酷功能,如有侵权,请联系我删除1.Android 开源之StickyHeaderListView 标题渐变、吸附悬停、筛选分类、动态头部 作者博客地址:http://www.jianshu.com/p/3bf26722c489# 代码下载地址:http://download.csdn.net/detail/dl10210950/9797201 作者gi
2017-03-29 10:39:28 2669
转载 RecyclerView配合DiffUtil,数据对比,局部刷新
本文转载自作者: 承香墨影,附上作者微信和公众号一、前言DIffUtils 是 Support-v7:24:2.0 中,更新的工具类。因为已经更新了一段时间了,也不好说是最新更新的。它主要是为了配合RecyclerView 使用,通过比对新、旧两个数据集的差异,生成旧数据到新数据的最小变动,然后对有变动的数据项,进行局部刷新。接下来就 DiffUtil 的使用细节,进行一个详细的讲解,希望一篇文章就
2017-03-28 10:21:01 3508 3
原创 文字和图片等抖动提醒
首先声明我不是生产者,我只是搬运工,我只写怎么实现效果,原理请看这里大头鬼Bruce:http://blog.csdn.net/lzyzsd/article/details/39255341我也是看了这位大神的博客,下了demo看了自己写的demo看效果 看代码 布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmln
2017-03-21 14:32:57 718
原创 把汉字转换成拼音的util
package com.duanlian.daimengmusic.utils;/** * 汉字转化为拼音 */public class Cn2Spell { private static int[] pyvalue = new int[] {-20319, -20317, -20304, -20295, -20292, -20283, -20265, -20257, -20242, -
2017-03-21 09:49:02 1729
原创 Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换
首先是网上大神给的类package com.duanlian.daimengmusic.utils;public final class Base64Util { private static final int BASELENGTH = 128; private static final int LOOKUPLENGTH = 64; private static final
2017-03-21 09:40:29 7281
原创 MVP的一点理解
学习MVP已经有一段时间了,看了很多资料,也写了好几个demo,前段时间一直都在做项目,没时间总结一下,趁着这段时间没有那么忙了,把我学习的一些理解记录下来总结起来就这张图 举个我自己理解的例子 M和V在闹离婚,都不愿意和对方去沟通,这是后P就出现了,负责M和V的沟通工作… V把离婚条件告诉P,P接到条件后就去问M,M考虑好条件告诉(接口回调给)P,P在去告诉V,V在做相应的处理.总结起来就是
2017-03-16 16:04:15 506
原创 Android双击Home键返回桌面
2中方式,都是监听返回键 一种 /** * 双击返回桌面 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if ((System.currentTimeM
2017-03-08 09:16:00 2100
原创 Android接入免费的短信验证SMSSDK的应用
有些时候自己做个人项目需要使用短信验证,但是又不想花钱,就得用我接下来要说的这个良心的第三方了 官网地址:http://www.mob.com/ 短信接入的文档:http://wiki.mob.com/api-android/ sdk下载的地址:http://www.mob.com/downloadDetail/SMS/android接下来说说步骤,其实步骤在官方文档里面已经有了,但是会有很多
2017-03-01 13:07:03 1558 1
原创 下拉选择菜单Spinner的使用
先看效果如果加上属性:android:spinnerMode="dialog"下面是他的属性: xml : android:dropDownHorizontalOffset 代码中 : setDropDownHorizontalOffset(int) spinnerMode=”dropdown”时,下拉的项目选择窗口在水平方向相对于Spinner窗口的偏移
2017-02-27 13:44:15 853
原创 自动完成文本框-AutoCompleteTextView和MultiAutoCompleteTextView
看看效果 自动完成文本框是从EditText派生出来的,实际上也是一个文本编辑框,但是比普通的编辑框多了一个功能:当用户输入一定字符之后,自动完成文本框会显示一个下拉菜单,供给用户从中选择,当用户选择某个菜单选项之后,AutoCompleteTextView按照用户的选择自动填写改文本框其属性有android:completionHint setCompletionHint(CharSequen
2017-02-27 11:26:39 598
原创 动态给ViewPager添加Indicator导航
先看下效果小圆点的形状和颜色都是可以自己定义的,看需求首先第一步,滑2个圆点,一个是选中后的圆点,一个是未选中的圆点,看选中的圆点shape<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="ova
2017-02-24 08:34:38 555
转载 java学习--单例模式
出处:本文为【viclee】原创,如需转载请注明出处~简介 Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。 单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导
2017-02-15 10:35:13 315
原创 Fragment的隐藏与显示
一般fragment和activity一起用的时候有两种方法,一个是用fragment替换到activity里事先放置的站位布局FragmentTransaction fragmentTransaction = getFragmentTransaction(); fragmentTransaction.replace(res, fragment); fragmentT
2017-02-06 08:37:50 17350 2
原创 GridView实现多选,全选,反选等功能
先看看效果 我这里用到了数据库来储存选择的数据,数据库的简单实用我在前面的博客写过了,这里就不多说了,直接贴代码数据库操作类的代码package com.duanlian.gridviewmultiplechoicedemo.database;import android.content.ContentValues;import android.content.Context;import a
2017-02-03 16:16:03 7791 2
原创 利用GridView实现单选功能
先看看效果 如果是你需要的,你可以继续往下看了实现起来比较简单,直接上代码 主Activity的布局,一个Button用来跳转到筛选Activity一个TextView用来显示筛选后的到的结果<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/ap
2017-02-03 14:32:08 7143 4
原创 尺寸相关工具类
package com.duanlian.daimeng.utils;import android.app.Activity;import android.content.Context;import android.util.DisplayMetrics;import android.util.TypedValue;import android.view.View;import andr
2017-01-21 17:26:51 372
原创 SD卡工具类
package com.duanlian.daimeng.utils;import android.annotation.TargetApi;import android.os.Build;import android.os.Environment;import android.os.StatFs;import java.io.BufferedInputStream;import java.
2017-01-21 17:26:19 410
原创 手机号码验证工具类
package com.duanlian.daimeng.utils;/** * 手机号码验证工具类 段炼 * */public class NumberUtils{ /** * 中国移动拥有号码段为:139,138,137,136,135,134,159,158,157(3G),151,150,188(3G),187(3G * );13个号段 中国联通拥有号
2017-01-21 17:25:10 918
原创 字符串操作工具类
package com.duanlian.daimeng.utils;import android.util.Log;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.text.ParseException;import java.text.SimpleDat
2017-01-21 17:24:30 386
原创 农历操作工具类
package com.duanlian.daimeng.utils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;/** * 农历操作工具类 段炼 */public class LunarUtils {
2017-01-21 17:23:43 479
原创 Bitmap工具类
package com.duanlian.daimeng.utils;import android.content.Context;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;
2017-01-21 17:21:47 476
转载 源码解读之Intent解读
Intent在Android开发中,虽然他不是Android四大组件中的一个,但是他是四大组件通信的纽带,在我感觉,Intent在开发中有时候比Service,广播还重要,有的项目可以不用服务和广播,内容提供者,但是Intent基本都是必不可少的,好的废话不多说,开始解读Intent简介Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作;作用尽管 Intent 可以通过多种方式促进
2017-01-08 18:46:40 446
原创 知识重温之帧动画的两种实现方式
闲来无事,复习一下知识,今天复习一下帧动画的两种实现方式:代码实现,xml实现,看看效果 1,通过Animation-list实现逐帧动画 首先在drawable下创建一个xml文件,代码如下:<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/r
2016-12-23 10:03:39 1770
ScrollView和ListView和GridView冲突解决之自定义ListView和GridView
2016-11-02
解决scrollView和gridView和ListView嵌套的冲突
2016-10-28
FastAndroid
2016-10-10
Android常用控件(能折叠的ListView)--ExpandableListView的使用模仿QQ好友列表
2016-09-13
Android 开源之StickyHeaderListView 标题渐变、吸附悬停、筛选分类、动态头部
2017-03-29
微信三方登录android6.0问题
2016-10-31
TextView的ems属性的问题
2016-09-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人