
Android
文章平均质量分 68
饥渴计科极客杰铿
最讨厌伸手党,而不巧本人也是伸手党
展开
-
安卓日记——蓝牙串口返回数据分段问题
起因:POS机通过串口发送数据过来,卡信息数据大小为205个字节。但是分成100+105 100+50+100等分段情况发过来 解决思路:接到第一份数据的时候等待0.5秒 , 之后完整的数据应该会全部发过来。 byte[] bytTemp = new byte[1024]; int nRetCount = 0; if(mInputStre转载 2016-03-23 19:40:56 · 3607 阅读 · 3 评论 -
安卓日记——RecyclerView进阶(下拉上拉刷新和万能Adapter)
在日常开发中简单地摆放已有数据基本不太可能,往往是要从数据库或者网络中获取然后添加到UI,这时下拉和上拉刷新肯定是家常便饭了,不用恐惧,其实这个也是非常简单的 下拉刷新其实就是用到之前我有提到的SwipeRefreshLayout,至于上拉刷新就是在RecyclerView底部加一个item,不同item一般都是要不同的viewholder的还有那个万能的Adapter主要是采用了泛型,可以传入任原创 2016-06-27 12:35:49 · 1114 阅读 · 0 评论 -
安卓日记——跨组件通信神器RxBus
RxBus听名字就知道与RxJava和EventBus有关啦 没错这其实是他们的结合体 其实写一个简单版的也真心不难,RxBus的代码只有十几行,没听错真的只有十几行 不过首先你要了解RxJava和EventBus的大概用法,RxJava不用多说,至于EventBus的话他的思想主要就是你在某个地方发送一个Event,然后在另一个地方接收这个Event,仅此而已。 EventBus在跨组件传原创 2016-06-29 19:51:46 · 1976 阅读 · 0 评论 -
安卓日记——MVP重构知乎日报
在之前安卓日记——手把手教你做知乎日报已经教大家分析和利用API做出一个简单的知乎日报,源码在github上也收到了5个star 最近我一直很想用一下一直很玄乎的MVP,主要参照谷歌的todo-mvp-rxjava 然后我就想不如就把知乎日报用MVP重构一下吧我理解中的MVP,以数据库或者网络请求作为M(通常多个共用,所以不单独写)一个Fragment或者Activity作为V,然后把之前的业务原创 2016-07-11 23:29:41 · 1114 阅读 · 0 评论 -
安卓日记——神器AndroidAutoLayout
转载请标明出处: http://blog.youkuaiyun.com/lmj623565791/article/details/49990941; 本文出自:【张鸿洋的博客】最大幅度解决适配问题,并且最大化方便开发者。so,看下用法: 你没有看错,拿到设计稿,在布局文件里面直接填写对应的px即可,px:这里的px并非是Google不建议使用的px,在内部会进行转化处理。ok,拿一些实际项目转载 2016-07-12 08:55:19 · 2608 阅读 · 0 评论 -
安卓日记——可缓存的知乎日报
我很久之前一直在想文字的缓存到底是怎么弄的呢,难道存在数据库? 最近发现okhttp可以设置缓存和拦截器,配合retrofit用起来实在是太方便了虽说retrofit的是基于okhttp的,但添加拦截器的做法,使okhttpclient更像是一个配置的容器,拦截器和缓存设置就相当于配置之前看过我 安卓日记——手把手教你做知乎日报 安卓日记——MVP重构知乎日报都已经掌握了知乎日报的基本做法和m原创 2016-07-12 23:57:21 · 1027 阅读 · 0 评论 -
安卓日记——Realm快速上手
Realm作为一种新兴的数据库以其变态的速度吸引了我们,摆图看看它有多快 力压主流Sqlite,所以学习Realm就很有必要了1.在项目的build.gradle=>buildscript=>dependencies添加classpath "io.realm:realm-gradle-plugin:1.0.1"添加后效果如下buildscript { repositories {原创 2016-06-30 23:22:01 · 762 阅读 · 3 评论 -
安卓日记——再也不用findViewById了(DataBinding快速入门)
DataBinding是谷歌一个数据绑定框架,谷歌出品,必属佳品 他的主要思想是mvvm,但这里不是重点,重点如何简单的使用这个好用的框架1.设置使用dataBindind要求你的gradule版本>=1.5 这里甚至不用下载包,只要加几行配置就好了 在app的build.gradule=>android下添加dataBinding { enabled = true }原创 2016-07-02 20:33:54 · 1495 阅读 · 0 评论 -
安卓日记——玩转Material Design(NavigationView篇)
最近突然对Material Design感兴趣,然后想看看怎么玩。 首先要说的是NavigationView,就是我们经常要用到的侧边导航栏 在没有NavigationView之前我们用的是普通的LinearLayout+ListView+头部layout NavitonView帮我们整合了这三部分,用起来也很方便1.导入material design的包compile 'com.androi原创 2016-06-17 19:04:45 · 1964 阅读 · 0 评论 -
安卓日记——玩转Material Design(伸缩顶部篇)
Material Design里面有一个很好玩的一个就是顶部伸缩,这样会给用户很好的交互效果 接下来我给大家解析一下大概是怎么个弄法 这次用的东西比较多,基本是都是Material Design的控件 主要有:CoordinatorLayoutAppBarLayoutCollapsingToolbarLayoutRecyclerView1.导入material design的包com原创 2016-06-17 21:16:35 · 2971 阅读 · 0 评论 -
安卓日记——玩转Material Design(RecyclerView+CardView篇)
前面安卓日记——玩转Material Design(伸缩顶部篇)提到要想用顶部伸缩必须要RecyclerView的配合,今天就给大家介绍一下RecyclerView的用法,顺带介绍一下CardView RecyclerView是一种流式布局,所用的Adapter要求强制使用ViewHolder 这个RecyclerView比传统的流式布局更加自由,当然要写的东西也只是多那么一点而已1.导入所需的原创 2016-06-18 17:10:46 · 1076 阅读 · 0 评论 -
安卓日记——使用MobSDK短信验证
短信注册和短信验证已经是家常便饭了,所以当然要学习如何使用SDK啦 MobSDK可以免费发短信,当然就用它啦 http://www.mob.com1.首先下载sdk2.在项目新建一个叫lib的文件夹把4个东西放进去3.在app的build.gradule添加如下代码repositories{ flatDir{ dirs 'lib' //就是你放aar的目录地址 }原创 2016-07-05 16:05:38 · 2772 阅读 · 2 评论 -
安卓日记——仿QQ列表
最近学习了如何做一个像QQ的左滑RecyclerView的item显示选项的,主要是用到Scroller我们首先新建一个自己的RecyclerView定义好一些要用的的变量 重写构造方法,把前两个构造方法改为如下,使无论如何构造都要执行第三个构造方法 在第三个构造方法里初始化Scrollerpublic class LeftSwipeMenuRecyclerView extends Recycl原创 2016-08-17 17:22:02 · 765 阅读 · 0 评论 -
安卓日记——20行代码写一个CircleImageView
一提到弄一个圆形的头像,很多人马上会想到用CircleIamgeView,但其实自己写一个也并不难自己写的部分也就20行代码,主要是用到PoterDuffXfermode来设置两个图层交集区域的显示方式首先写一个继承自ImageView的控件public class CircleImageView extends ImageView 然后创建构造方法public CircleImageView(Co原创 2016-08-06 16:35:07 · 606 阅读 · 0 评论 -
安卓日记——保存你的日夜间模式
日夜间模式我我们常用的一个功能,那具体要怎么做呢? 主要用两种比较好的方法 第一种简而言之:持久化theme再recreate再取出theme,在setContentView前使用setTheme方法 第二种使用 Support Library 23.2.0 DayNight主题实现先说第一种第一种的好处是不仅是日夜模式,还可以自定义很多自己的模式首先写一下自己的持久化工具SPUtil这个工具原创 2016-08-23 20:06:33 · 609 阅读 · 0 评论 -
安卓日记——屏幕适配
由于安卓的开源,各种设备的尺寸也是五花八门,我们无法做到任何设备都适配(特殊要求除外),所以只能针对目前比例最大的几种机型进行适配首先普及几个概念px是构成图片的最小单位,dpi是像素密度,对角线的像素除以长度,dip(也叫作dp)是密度无关像素,160dpi的设备上,1dip=1px。1dip 所等于的px和dpi成正比,也就是说在320dpi的设备上,1dip=2px。sp可以根据文字大小首选项原创 2016-08-13 19:05:18 · 418 阅读 · 0 评论 -
安卓日记——用Retrofit写一个登录注册APP
在上一篇文章 Python日记——做一套简易的注册登录系统中,我简单介绍了如果做一个登录注册系统,但最终还是要安卓或者网页是实现这个登录注册行为这里我用一个非常流行的安卓网络请求库Retrofit去演示这个过程首先写网络的接口public interface MyService { public static String base_url="你的服务器地址"; @POST("api/u原创 2016-09-07 09:02:23 · 2158 阅读 · 1 评论 -
安卓日记——用RxJava做轮播图
Rx有个Observable.interval的方法可以每个几秒执行一次,正好用于做一个轮播图 我们采用两边加一个的方法,尾部加原来的头部,头部加原来的尾部 然后监听切换页面时,如果是第一个的话就改为原来的最后一个,如果是最后一个的话就改为原来的第一个 首先导入依赖库compile 'io.reactivex:rxjava:1.0.14'compile 'io.reactivex:rxand原创 2016-10-11 08:23:41 · 861 阅读 · 1 评论 -
安卓日记——设计一个通用的BaseActivity
如果是只有一个Activity的App就没有必要写BaseActivity,但一旦大于一个我还是建议写一个BaseActivity,准没错。每个Activity通常都是绑定视图,绑定控件,监听控件,获取Bundle,跳转Activity还有一些很有些烦人的小功能如:Toast,findViewById,我们都可以封装一层简化他们的使用BaseActivity的代码如下:public abstract原创 2016-06-11 09:25:09 · 1156 阅读 · 0 评论 -
安卓日记——教你做简单的应用锁
我百度了一下关于应用锁的内容,大部分都是用service来实现,作为一个入门的人来说,用service来做一个的确有点难度。现在有一种比较简单的方法,总得来说就是用一个值来记录这次返回或者打开Activity是否是由按键打开,是的话则不弹出锁屏,不是的话则弹出锁屏,我们这次用sharepreference来储存这个值一、我们先新建一个BaseActivity,因为这些Activity都是在onRes原创 2016-06-07 21:32:44 · 978 阅读 · 0 评论 -
安卓日记——超简单的开发框架afinal
Afinal简介Afinal 是一个android的sqlite orm 和 ioc 框架。同时封装了android中的http框架,使其更加简单易用;使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题。Afinal的宗旨是简洁,快速。约定大于配置的方式。尽量一行代码完成所有事情。目前Afinal主要有四大转载 2016-02-16 09:44:43 · 453 阅读 · 0 评论 -
安卓日记——利用http上传文件到服务器
利用安卓上传文件到服务器首先你要有服务器,第二你要有个处理上传文件的后台建议自己先学习使用tomcat服务器自己想办法,可以用tomcat把自己电脑变为服务器(不过手机和电脑要在用一个局域网而且地址用cmd然后输入ipconfig找ipv4的,自己试试看吧)我的后台采用jsp下面是安卓源码源码该备注的地方我都写好了,我也是借用别人写好的uploadutil,有兴趣可以研究,没兴原创 2016-02-10 21:00:03 · 1806 阅读 · 0 评论 -
安卓日记——volley常用方法介绍
volley为我们提供了更简单,更快,更健壮的方法来处理一些频繁且小的网络通讯,比如获取json,获取字符串,获取图片首先导入volley这个jar包一 获取json学过安卓网络通信的人都知道http请求有两种方法,get和post,他们的区别不多说可以直接在oncreate里写,但为了整洁我们通常会新建方法,把内容写在外面的方法里。注:以下的url和传入的参数要改为自原创 2016-02-04 16:58:23 · 456 阅读 · 0 评论 -
安卓日记——ViewPager与RadioGroup关联
首先说viewpager吧他是一种特殊的控件在layout里必须写成android.support.v4.view.ViewPager<android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="wrap_content" android:layout_原创 2015-12-22 17:49:18 · 638 阅读 · 0 评论 -
安卓日记——preferenceactivity用法
首先要在res新建一个xml文件夹,新建一个preference screen的xml新建一个继承自PreferenceActivity的类重写oncreate方法oncreate里面添加addPreferencesFromResource(R.xml.myprefence);里面的xml就是新建那个xml然后在mainactivity的oncreate里添加sta原创 2015-12-24 08:49:25 · 653 阅读 · 0 评论 -
安卓日记——preference用法简介
preference可以储存一些简单的如int,string,boolean首先新建两个变量private SharedPreferences sharedPreferences; private SharedPreferences.Editor editor;在oncreate添加 如下代码sharedPreferences=getSharedPreferences("ia原创 2015-12-24 09:27:42 · 746 阅读 · 0 评论 -
安卓日记——sqlite用法
sqlite需要用到SQLiteOpenHelper首先新建一个类继承自SQLiteOpenHelper重写它的而方法在构造方法(此处类名为DbOpenHelper)中可以只留下context参数。name和version可以提出来,写成静态,因为通常用的都是相同的但如果有多个表时就就要把name放进去了public DbOpenHelper(Context context原创 2015-12-26 00:13:50 · 570 阅读 · 0 评论 -
安卓日记——http中的get和post方法
get和post可以简单的理解为get将参数写在url后,而post不是可以看到下面代码,传给Asyntask的url是不同的get和post都是比较耗时的,所以最好放在Asyntask里的doinbackground里Asyntask的参数改为(String, Void, Void)然后在Asyntask对应的}后添加(以post为例).execute("http://192.1原创 2015-12-27 10:55:55 · 656 阅读 · 0 评论 -
安卓日记——快速发布开源项目到jcenter
本人成功上传之后转载此文章,修改了一些小错误,最好以此文章为准转载请标明出处(请勿转载删除底部微博、微信等信息): http://blog.youkuaiyun.com/lmj623565791/article/details/51148825; 本文出自:【张鸿洋的博客】大家在很多时候都希望让自己的开源项目可以更方便的让用户去使用,那么对于Android平台,一个很好转载 2016-04-27 19:10:18 · 691 阅读 · 0 评论 -
安卓日记——设计简洁好看的UI
最近看到谷歌的to-do的那个demo,虽然他的mvp暂时还看不懂,但我觉得他的界面还是挺好看的,所以决定跟着模仿一下 效果图 主要是用到下面几个东西ToolBarActionBarDrawerToggleMenu PopupMenuDrawerLayoutFrameLayoutImageButton首先说明一点,不同部分的布局分开写很重要这样以后修改起来就会很方便,而不用慢原创 2016-05-25 09:53:56 · 4115 阅读 · 0 评论 -
安卓日记——下拉刷新
不得不说,进入了material design时代,很多app都开始用安卓原生的SwipeRefreshLayout,比如知乎,简书都是用这个简单好看的控件最近我也试着用了一下,发现真的超级简单,它可以支持很多种子view,只要是能滚动的,比如Scrollview,ListView,GirdView。然后我这里以ScrollView为例,因为这个比其他View更加自由 在布局中只需加入以下代码<a原创 2016-05-25 15:14:20 · 592 阅读 · 0 评论 -
安卓日记——PagerSlidingTabStrip使用介绍
最近在弄一些常用的好看的控件,当然少不了ViewPager,然后ViewPager通常要和标签组合使用,在很就之前我是用RadioGroup来当作标签的,然后发现了ViewPagerIndicator,但用起来很麻烦,但效果很多样化。但最终我选择了使用PagerSlidingTabStrip 原因有以下两点1. 加载简单 2. 使用简单加载只需在Moudle的Build.gradle里添加co原创 2016-05-25 23:57:11 · 1443 阅读 · 0 评论 -
安卓日记——自定义view(2)
转自:http://blog.youkuaiyun.com/lmj623565791/article/details/24529807今天没事逛eoe,看见有人求助要做一个下面的效果,我看下面一哥们说要用12张图片,这尼玛逆天的麻烦,仔细看了一下感觉自定义控件木有问题,就花点时间写了一个。好了,进入正题,继续我们的自定义View四部曲。1、先分许需要的属性,两个小块的颜色、转载 2016-05-12 23:19:19 · 473 阅读 · 0 评论 -
安卓日记——简单验证码识别(安卓版)
之前我写过一篇Java日记——识别简单的验证码,虽然安卓用的也是java语言,但有些java的东西在安卓上就不行,比如那个awt的一个BufferImage。所以我查了很久资料,终于把他翻译成安卓的啦。主要将本地的trainimg放在asset里,BufferImage改为Bitmap源码如下:(注释的话和java日记的差不多我就不写了,只是部分改变了而已)package com.原创 2016-04-19 12:54:10 · 2410 阅读 · 0 评论 -
安卓日记——手把手教你做知乎日报
众所周知知乎日报的api是公开的,所以我就想做个自己的知乎日报来玩一下 主要用到下列库rxandroid:1.1.0rxjava:1.1.3retrofit:2.0.0-beta1retrofit:adapter-rxjava:2.0.0-beta2retrofit:converter-gson:2.0.0-beta2pagerslidingtabstrip:1.0.1glide:3原创 2016-05-30 13:06:49 · 3761 阅读 · 0 评论 -
安卓日记——自定义按钮效果
安卓原生的按钮是多么丑,效果是多么单调,大家也是有目共睹的。 要做一个APP少不了使用按钮,一个好看的按钮少不了好看的效果和外表 这次主要跟大家讲讲如何用drawable的xml文件弄一些好看的自定义样式首先是外表 在APP中四四方方,灰色底黑色字的按钮是很难看的,我们希望看到的是圆角,彩色,白字(根据你的个人审美也可以是其他样式)。 首先是在layout里新建一个按钮 然后在drawab原创 2016-05-07 21:20:24 · 1630 阅读 · 0 评论 -
安卓日记——利用include和Framelayout搭建app UI框架
layout也可以include不听说过没呢 include就是将某个写好的layout添加到另一个layout里 include好处有:减少在主布局文件中的代码量,看起来更加清晰。把各部分独立开来,方便管理。可以多处复用然后我们通常都会写个头部和脚部吧 在主的layout中 最好不要直接include 最好加一层Linearlayout 然后再设置他们是靠顶部还是靠底部 如<原创 2016-05-07 21:44:01 · 2296 阅读 · 0 评论 -
安卓日记——一个从相册或者相机获取照片的工具类
从相册或者相机或者照片已经成为流行APP不可或缺的一部分,然后新手在实现这个功能时总会遇到这种那种的问题,比如无法获取相机拍照的原图或者裁剪后一闪而过这些问题。我便动手写了一个工具类方便其他人去使用或者修改首先要添加两个权限 <uses-permission android:name="android.permission.CAMERA"/> <uses-permission andr原创 2016-09-29 22:26:41 · 1270 阅读 · 5 评论