
Android
文章平均质量分 72
arjinmc
程序猿一只,经常乱说话,说多了便成了小说。
展开
-
指纹校验工具库
Android 6.0以上设备开始支持指纹校验,但也有一些老人机没有指纹传感器。所以做个工具库方便适用,有些手机系统还是使用了低版本但指纹校验api,这里做了一些兼容处理。目前已兼容到Android 11.简单介绍一下用法:所有动作基本通过FingerprintUtil 来完成。1.检查设备是否支持指纹校验FingerprintUtil.isSupport(context);2.检查设备是否已经设定了指纹信息。但是有些手机对应的系统版本调用的并不是Android官方规定的api版本,可原创 2020-10-10 17:35:04 · 7450 阅读 · 0 评论 -
RecyclerView分割线
RecyclerView这个新控件确实在性能方便做了很多功夫,但是唯一有点头痛就是分割线要自己写。参考了一位大神(https://github.com/yqritc/RecyclerView-FlexibleDivider)的思路后,我也尝试自己也写一个工具类吧。但是大神这个分割线没有网格的,我已经搞定了~主要搞定两个问题:要重写RecyclerView.ItemDecorat原创 2015-11-30 16:45:59 · 1781 阅读 · 0 评论 -
实现仿微信聊天时发送图片的形状(NinePatch+PorterDuffXfermode)
微信聊天时,发送的图片是完全填充气泡的,没有边框,只有气泡的轮廓,今天我们项目里也想使用这种呈现方式,于是花了点时间研究了下.布局文件.转载 2015-03-25 16:38:45 · 3102 阅读 · 0 评论 -
gitignore for android
# built application files*.apk*.ap_# files for the dex VM*.dex# Java class files*.class# built native files*.o*.so# generated filesbin/gen/# Ignore gradle files.gradle/build/# Lo转载 2015-07-21 17:38:40 · 694 阅读 · 0 评论 -
Android Studio中使用Gradle打包
首先要注意一点,Android Studio中把proguard.txt已经命名为proguard-rules.pro,由此可见,采用Gradle打包,混淆规则文件的名称是不重要的,可以自己随便命名。混淆规则跟原来一样,没有变化。不懂可以搜一下别人怎么写的。加入签名文件,在Build->Generate Signed APK…就会看到下面的弹出框如果没有签名文件原创 2015-07-16 00:16:32 · 2015 阅读 · 0 评论 -
Volley的Https请求
前提:volley框架的jar,服务端ssl证书文件(crt,cet,pem格式等) 如果没有volley,我们可以通过git clone下来。地址:https://android.googlesource.com/platform/frameworks/volley我们再来看看volley提供的demo源码:git://github.com/ogrebgr/android_v原创 2015-07-28 17:05:28 · 3701 阅读 · 10 评论 -
Android strings.xml中空格符的标识步骤附xml特殊字符表示法
Android strings.xml中空格符的标识方法附xml特殊字符表示法在XML中空格符不是用HMTL中的 表示,而是用 表示。附XML中特殊字符的表示法列表:转载 2015-06-10 17:00:15 · 1160 阅读 · 0 评论 -
解决android开发中eclipse不能自动提示
Eclipse中window->Preferences->Java->Editor->Content Assist->Advanced->顶部的选项卡Select the proposal kinds contained in the 'default' content assist list: 中把”Java Proposals“ 选项打上勾。原文地址:http://www.cnblog转载 2015-06-04 15:26:52 · 786 阅读 · 0 评论 -
PhoneGap loadUrl监听
最近有个外包项目,需要用到PhoneGap,之前对Cordova和PhoneGap两者的关系有点错乱,做了这个项目才知道他们的关系。Cordova是Phonegap的儿子,但是对于商业用途来说,我还是建议大家使用PhoneGap,因为PhoneGap的代码结构比Cordova更加简洁,市面上的招聘也是招PhoneGap居多。用PhoneGap来load url,可能是大部分项目都是用JQuer原创 2015-06-01 16:47:59 · 1634 阅读 · 0 评论 -
ScaleProgressBar Loading效果
这个demo是鸣人叫我做的效果,大家用的时候根据实际需要再调整参数。先看效果图:主要构思:当progress到最大值的时候触发动画效果,效果都由canvas画布上进行。主要代码:@Override protected void onDraw(Canvas canvas) { int halfWidth = getWidth() / 2; int halfHei原创 2015-06-17 16:03:43 · 1459 阅读 · 0 评论 -
ScrollView向上滚动显示头部
项目中需要做一个类似手机QQ中查看个人资料,当向上滚动页面时候,头部的底色会根据滚动的距离渐变改变颜色。看考了这个https://github.com/AChep/Header2ActionBar 库,但是这个库用了actionbar,而且在4.0~4.1的系统都无效。想必要做一个可以上下兼容的效果。原理比较简单,重写ScrollView,添加onScrollChangeL原创 2015-03-11 11:04:04 · 1846 阅读 · 0 评论 -
Android中集成QQ登陆和QQ空间分享
本文基于QQ open sdk V2.4.1。QQ登录应用有一个地方是需要注意的, QQ申请同一品牌应用(包括网站和app),需要相互依赖申请,因为在QQ互联中,一个应用对应一个app key,如果网站和app的app key是不同的,这样相同用户使用QQ登录时候所产生的openid就会不同了,此时无法判断是否为同一个用户。在QQ互联中,一个用户的openid是对应一个应用,也就是说,原创 2014-08-08 15:28:57 · 7629 阅读 · 14 评论 -
Windows搭建NDK 环境
基于android的开发环境下继续安装以下内容: 1. Cygwin原版只有fot linux,用于编译Android的脚本。下载地址https://cygwin.com/install.html下载完毕,安装一直点next,然后见到一堆安装内容部分,搜索make,然后在devel default中找到make:The GNU version of the ‘make原创 2015-03-17 14:01:06 · 802 阅读 · 0 评论 -
ViewPager刷新数据,动态更改adapter的数量
查了很多资料,发现要做到ViewPager刷新数据,动态更改adapter的数量那种效果只要实现这个方法就可以了:private class ViewPageAdapter extends FragmentPagerAdapter { public ViewPageAdapter(FragmentManager fm) { super(fm);原创 2015-10-08 15:56:26 · 4383 阅读 · 0 评论 -
Java/Android倒计时(开始,暂停,恢复,停止)
由于要做暂停和恢复,这里我就没有使用Android的CountDownTimer,而是用了Java的Timer。所以,这个方法在java肯定是通用。我也外加了Android独有的Service,有些计时器需要在Activiy关闭的情况下依然在计时,回到Activity时,显示当前的计时状态。Timer 这个Java的类,具体看Java的API说明,但是要注意一点:Timer 在cancel原创 2015-08-19 10:21:49 · 11468 阅读 · 2 评论 -
这才是你想要的RecyclerView的扩展库
RecyclerView自从2015年推出以来,至今在开源中出现了各种各样的开源库,五花八门,但是,在使用的过程中是否真的适合你呢?这个我就不太清楚,然而,我感觉我还没有找到使用更方便的库,因此,我创建了这个库ExpandRecyclerView。在2015年我创建了一个RecyclerView分割线库叫RecyclerViewDecoration,1.x版本虽然具备很多属性,但是用起来不是很方便...原创 2018-04-16 14:14:02 · 1396 阅读 · 0 评论 -
多彩虚线实线照样玩
最近忙了下,还没来得及介绍这个自定义view。就是多彩的虚线,也可以做成是实线,只要把dashgap设置为0就可以了。用法如下:<com.arjinmc.dashcolorline.DashLine android:layout_width="match_parent" android:layout_height="wrap_content"原创 2017-07-24 23:27:21 · 702 阅读 · 0 评论 -
RippleEffectLayout高仿Android 5.0 Ripple效果
这个效果是个老效果了,不过这种水波纹Ripple只能在Android 5.0以上才能支持,要向下兼容少不了。网上找了一些感觉好用的不多,于是自己写了一个。这个效果原理很简单,只要确定点击的位置,然后做一个圆圈放大的效果。还有一点,点击layout后可以直接触发在它里面的view的点击事件。在使用时,设置圆形的最小半径和最大半径,还有颜色,透明度。useCenter属性是指,是否使用布局自身原创 2017-07-05 23:28:29 · 701 阅读 · 0 评论 -
没错,就是多功能的RecyclerView分割线
这个分割线其实是两年前就已经写了,后来今年小伙伴跟我说要给LinearLayoutManager模式下的分割线加padingStart和paddingEnd,后面又遇到项目有需求需要控制显示前后风格先,顺便就把网格模式边框也加上了。又有同行给我留言要加horizontalspacing和verticalspacing,然后就改成现在这个样子了。我感觉,今年的改动都差不多等于把这个view重新写原创 2017-07-05 23:57:18 · 2106 阅读 · 0 评论 -
Autofill Framework(自动填写)用法详解
本文是基于[官方demo](https://github.com/googlesamples/android-AutofillFramework)来分析Autofill Framework的用法(要正常打开这个项目请使用Android Studio Preview 3.0以上版本,并下载Anroid O模拟器镜像)。Autofill Framework最低支持SDK API 26(Android O)+。原创 2017-06-16 14:17:56 · 16183 阅读 · 3 评论 -
Android 6.0+ (api 23+)应用保活方案研究
Android 6.0开始,系统引进了一个Doze系统的概念。Doze系统是只当设备被闲置,用户没有对设备有互动的操作,也就是锁屏的情况下,系统过一段时间进入这个Doze模式,其中还有一个定义叫idle模式的在doze的中间,我叫它是深入睡眠。在idle模式下,系统可以关闭一些后台程序,包括常驻的service(就算你是sticky也无力抵抗),网络更新,同步,闹钟,减少它们的活动频率,从而达到省原创 2017-04-28 22:27:25 · 954 阅读 · 0 评论 -
自定义SlideButton(基于属性动画)
SlideButton主要包括一个长的滑动范围和一个可以滑动的button。滑动范围可以用一般的layout组件就可以,例如RelativeLayout,FrameLayout。在layout组件的onTouch事件去控制button的移动范围。我最开始直接用button.layout(l,t,r,b)去控制滑动的位置,当我用属性动画ValueAnimtion时发现动画变化后,原创 2017-03-18 11:41:29 · 1385 阅读 · 0 评论 -
Android Button Library 按钮库
闲来没事搞开源库,做了一个button库,目前种类还不多,陆续更新。源码地址:https://github.com/arjinmc/AndroidButtonLibSlideButtonDownloadButtonSubmitButton原创 2017-04-09 19:23:45 · 2244 阅读 · 0 评论 -
DateScroller自定义控件横向滑动日历选择器
DateScroller自定义控件横向滑动日历选择器原创 2017-03-04 01:07:31 · 1951 阅读 · 0 评论 -
NDK入门之JNI篇
提到NDK,相信有很多想进阶Android的朋友一听到这个名字都感觉有点头痛,但是你放心,这仅仅是噩梦的开始。要说NDK的配置,主要是为了配合android开发的cpu等硬件问题而配置的,其实这些不是重点,要记住这些都是属性配置而已。真正有问题的地方就是要编写这些JNI的C,C++部分。JNI是Java NativeInterface,就是java跟C,C++的接口,在jdk里面就已经有存原创 2017-02-23 23:54:10 · 621 阅读 · 0 评论 -
微信,QQ 抢红包
微信QQ抢红包,相信随便搜索一下,结果真不少。我这里的版本是尽可能的完善到完美。不错,我们都是用AccessbilityServcie类来处理。在使用之前先生成它的配置文件,在res目录下创建一个xml文件夹,创建这个配置文件<accessibility-service xmlns:android="http://schemas.android.com/apk/res/androi原创 2016-10-31 18:09:58 · 1506 阅读 · 0 评论 -
OpenExpress开源啦
之前有跟友人想过做一个快递的软件,但是毕竟忙,没有完全做好。最近又遇上极客学院在搞一些app的比赛,索性乘这个机会,顺便将这毕竟好用的快递api带给大家。源代码已经在github 上开源。https://github.com/arjinmc/OpenExpress 。我也征求了快递api作者的意见,可以把这个东西开源并且宣传。本项目使用了开源项目AndroidResideMenu,也就是大家所原创 2015-03-25 17:04:38 · 1578 阅读 · 0 评论 -
com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes
Gradle打包时出现的错误:Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes; at com.android.dx.merge.DexMer原创 2015-01-23 17:38:12 · 1545 阅读 · 0 评论 -
表情的发送,展示,粘贴与删除
最近我也在做插入表情的功能,网上有很多关于表情的使用的资料,但是大部分资料都是缺胳膊少腿的。参考了网上的一些例子,我做了一个比较完善的demo分享给大家,当然这个demo也存在一些优化问题,有兴趣的人继续优化它。我已经把项目源代码开源在我的github上,https://github.com/arjinmc/FaceDemo网上很多例子是以数组的形式去存储我们的表情键值对,但是实际项目中并不会原创 2015-01-05 00:12:35 · 2600 阅读 · 0 评论 -
媒体库选择图片显示可提供上传(非sdcard)
(written at 2013-03-19 09:23:51)最近要在项目中要实现这种功能,在网上也没有找到很好的例子,参考了各种例子终于做出来一个比较像样的,但是还有一个小问题,就是当选用非系统媒体库方式打开时候不能进行裁剪,之前有试过可以裁剪的,但是方法被我不知道弄到哪里去了,现在分享个给大家参考。在没有sd卡的情况下怎么去调用媒体库的图片文件,或原创 2014-03-12 00:23:51 · 1478 阅读 · 0 评论 -
Item高度固定下动态设置ListView的高度
(written at 2013-02-27 14:17:32)item.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="44d原创 2014-03-12 00:19:43 · 4148 阅读 · 0 评论 -
性能测试与优化
优秀代码准则:简练可读性强模块化层次性设计良好高效优雅清晰 代码规范基本要求程序结构清晰,简单一动,单个函数的程序行数不得超过100行打算干什么,要简单,直接了当,代码精简,避免垃圾程序尽量使用标准库函数和公共函数不要随意定义全局变量,尽量使用局部变量使用括号以避免二义性可读性要求可读性第一,效率第二保持注释与代码完全一致每个源程序文件,都有文件原创 2014-03-11 21:21:39 · 937 阅读 · 0 评论 -
java.lang.IllegalStateException: commit already called
(written at 2014-03-05 23:40:49)该错误,是因为你的ft事务是全局的变量,只能commit一次。 所以用两个局部ft事务去做commit即可。 原文地址:http://blog.youkuaiyun.com/knxw0001/article/details/9363411 arjinmc补充: FragmentManag转载 2014-03-12 00:54:42 · 1652 阅读 · 0 评论 -
adt20以上代码混淆
(written at 2014-02-11 22:55:22)adt20版本之前的代码混淆,网上一大堆,但是关于adt20(包括adt20)以上版本怎么处理第三方jar包不被混淆的很少人提到。我也纠结了一下才知道了原来是要这样处理的。我的是adt22。比如,我不需要腾讯的jar包被混淆,在proguard-project.txt里需要加上-dontwarn原创 2014-03-12 00:50:57 · 892 阅读 · 0 评论 -
按钮控制ViewPager的左右翻页,保留原有的动画效果
(written at 2013-10-22 12:24:07)有时候我们希望在项目里使用ViewPager的时候可以用按钮去控制ViewPager的翻页,并且可以保留ViewPager本身的翻页动画。这个时候我们需要用到一个函数,叫arrowScroll(integer)。但是我查了一下官方提供的sdk文档http://developer.android.com/re原创 2014-03-12 00:37:12 · 2525 阅读 · 0 评论 -
在EditText中弹出数字键盘输入密码
(written in 2012-10-09 17:33:01)类似一些银行系统,只有数字的密码。碰巧我最近在做网络电话项目,这个系统的密码也只能输入数字,但是要输入数字又不能显示出来给别人看到,可以用下面的方法。1.先把EditText控件的输入属性设为密码:android:inputType="textPassword"2.然后在代码中的EditText控件添加数原创 2014-03-11 21:35:41 · 1725 阅读 · 0 评论 -
Webkit
(written in 2012-08-09 22:31:31)WebKit的组成Webkit :整个项目的名称JavaScriptCore:JavaScript解析器API:基本JavaScript功能Binding:与其他功能的绑定,如DOM,C,JNIDerviedSource:自动生成代码ForwordHeads:头文件,无实原创 2014-03-11 21:33:10 · 1281 阅读 · 1 评论 -
TabWidget切换片
(written in 2012-07-18 23:01:36)需要用到TabHost对象常用APITabHost getTabHost()该方法TabActivity类方法创建TabHost对象addTab()添加一个选项卡tabHost.newTabSpec(String tag原创 2014-03-11 20:46:04 · 934 阅读 · 0 评论 -
配置开发环境和Android Tools
(written in 2012-06-29 01:30:09)在windows下开发android应用程序安装java 虚拟机,java sdk for windows安装eclipse, eclipse for windows安装ADT(Android Development tools)插件(含有DDMS和Logcat),打开eclipse,help》原创 2014-03-11 20:36:25 · 965 阅读 · 1 评论 -
相机,闹铃,铃声
(written in 2012-08-01 01:34:37)Camera类常用APIautoFocus设置自动对焦getParameters得到相机的参数open启动相机服务release释放相机服务setPar原创 2014-03-11 21:10:05 · 1335 阅读 · 0 评论