android
文章平均质量分 87
-小猪-
这个作者很懒,什么都没留下…
展开
-
开发规范-GIT提交规范
代码提交规范篇【推荐】代码提交应该短小而频繁,尽量避免单次提交大量代码。说明:约束单次提交的范围有利于写出更加针对性的说明,也对代码审核更加友好。反例:单次提交超过200+行的代码或20+的文件;只在休息的时候(午休、下班)提交代码;很难一句话说清楚这次提交的内容【强制】代码提交说明应该描述本次提交的具体内容,并带上适当的前缀feat:新功能的说明fix:修补bug的说明docs:增加文档、注释style: 调整代码格式(不影响任何代码逻辑的变动)refactor:代码重构(既不是新原创 2021-04-16 16:44:45 · 1388 阅读 · 0 评论 -
RecyclerView的Item点击事件实现总结
自从开始使用RecyclerView代替ListView,会发现有很多地方需要学习。前一段时间的学习记录有:RecyclerView的滚动事件研究 - DevWikiRecyclerView的ViewHolder和Adapter的封装优化 - DevWikiRecyclerView问题记录 - DevWiki实现 RecyclerView转载 2016-12-21 15:02:06 · 723 阅读 · 0 评论 -
Android限定EditText的输入类型为数字或者英文(包括大小写)
其实有两种方案:1.在xml:EditText 设置属性----android:digis="ABCDE555555&&&&&" (尼玛CSDN也坑爹啊, 根本不是digis, 我还奇怪怎么冒个digis 出来, 经个人验证是digits !! 尼玛原作者写错就算了, 你们这些到处乱转载骗点击率的家伙多少检查下原文啊!!! )ABCDE555555&&&&&"是你的限制规则。转载 2016-12-07 14:00:02 · 1199 阅读 · 0 评论 -
MVVM Light Toolkit使用指南
概述MVVM Light Toolkit是一个Android MVVM 轻量级工具库,主要目的是更快捷方便的构建Android MVVM应用程序,工具库添加了一些Data Binding 不支持的属性,还有添加对控件事件的封装,同时提个一个全局消息通道方便ViewModel 之间的通信,Toolkit主要包括两部分Binding和Messenger,接下来,我们分别说明下这两个模块的作用和使用转载 2016-12-13 17:25:15 · 1802 阅读 · 0 评论 -
玩转Android之MVVM开发模式实战,炫酷的DataBinding!
C# 很早就有了MVVM的开发模式,Android手机中的MVVM一直到去年Google的I\O大会上才推出,姗姗来迟。MVVM这中开发模式的优点自不必多说,可以实现视图和逻辑代码的解耦,而且,按照Google的说法,使用了MVVM的开发模式,还可以提高布局文件的解析速度,个人觉得这一点非常重要。我们在安卓开发中经常需要写很多个findViewById,让人心烦,很多人不想写这个于是用了一些注解框转载 2016-12-13 11:14:42 · 738 阅读 · 0 评论 -
getBackground().setAlpha所导致问题
从晚上9点就开始琢磨,为什么我在一个地方设置了getBackground().setAlpha(0);在别的activity中有些控件也变成透明的了,让我百思不得其解,哦,现在是晚上十一点四十五,问题终于解决(解决不了睡不着觉啊),觉得挺有意思的,分享一下,先举个例子:xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android转载 2016-11-02 13:16:07 · 642 阅读 · 0 评论 -
Android利用shape画虚线
我们知道,想在Android XML中画出一条直线,很简单:<View android:layout_width="match_parent" android:layout_height="1px" android:background="#FFFFFF"/>如果想要画出一条虚线呢?在drawable目录下新建bg_dash_line.xm转载 2016-11-09 12:03:24 · 474 阅读 · 0 评论 -
Android事件分发机制完全解析
在阅读本文前,请先参考以下三篇文章Android-onInterceptTouchEvent()和onTouchEvent()总结Android事件分发机制完全解析,带你从源码的角度彻底理解(上)Android事件分发机制完全解析,带你从源码的角度彻底理解(下)在读完上面三篇文章以后,相信大家对事件分发机制有了一个比较清晰的认识,为了更好地理解事转载 2016-09-21 22:30:36 · 271 阅读 · 0 评论 -
Message、Handler、MessageQueue、Looper之间的关系
Looper是一个消息分发器,在主线程创建的时候就会创建一个Looper对象messageQueue :消息队列,是由message组成的一个 队列handler:从messageQueue中获取到message,然后执行动作,可以再主线程和子线程中互相传递数据看了源码之后大概的说一下他们的关系: 在主线程创建之后会创建一个Looper对象,创建Looper对象的时候转载 2016-09-21 16:52:59 · 366 阅读 · 0 评论 -
singleinstance 详解
这种启动模式比较特殊,因为它会启用一个新的栈结构,将Acitvity放置于这个新的栈结构中,并保证不再有其他Activity实例进入。新建2个activity,FirstActivity,SecondActivity,由FirstActivity跳转到SecondActivity,然后在SecondActivity加点击事件又回到FirstActivity。我们修改FirstAct转载 2016-07-26 18:31:32 · 11192 阅读 · 0 评论 -
ListView的divider
在Android应用开发中会经常碰到一个叫divider的东西,就是两个View之间的分割线。最近工作中注意到这个divider并分析了一下,竟然发现内有乾坤,惊为天人…ListView的divider1. 定制divider的边距ListView的divider默认是左右两头到底的,如何简单的设置一个边距呢?利用inset或者layer-list都可以简单的实现,代码转载 2016-06-14 13:31:41 · 906 阅读 · 0 评论 -
Android WebView保存Cookie登录
因项目需要,需要在App中嵌入网页,使用Nativie方式登录,然后将cookie保存到WebView中,实现免登录功能。同步Cookie到WebView的方法网上有大量的参考资料,也可以参考下面的代码:/*** Sync Cookie*/private void syncCookie(Context context, String url){ try转载 2016-06-29 11:37:51 · 4893 阅读 · 12 评论 -
android中Webview与javascript的交互(互相调用)
最近做Android项目中遇到要在webview中做与js交互相关的东东,涉及到js中调用android本地的方法,于是查了资料整理了一下android和js互相调用的过程。如下demo,demo的主要实现过程如下:通过加载本地的html文件(里面有js脚本),实现android本地方法和js中的交互。第一步:mainfest.xml中加入网络权限[java转载 2016-06-24 11:54:40 · 396 阅读 · 0 评论 -
Android-MVVM架构-Data Binding的使用
项目整体效果:Awesome-Android-MVVM什么是MVVM, 为什么需要 MVVM?如何在Android中使用Data Binding实现MVVM架构?什么是MVVM , 为什么需要MVVM?MVVM是Model-View-ViewModel的简写. 它是有三个部分组成:Model、View、ViewModel。Model:数据模型层。包含转载 2016-12-26 16:26:56 · 1931 阅读 · 0 评论 -
Android网络请求使用Retrofit+OkHttp,如何获取请求参数 ?
Retrofit是一个非常优秀的网络库,默认支持OkHttp,Retrofit与OkHttp共同出自于Square公司,Retrofit其实就是对OkHttp做了一层封装。把网络请求都交给给了OkHttp,我们只需要通过简单的配置就能使用Retrofit来进行网络请求了。Retrofit现在最新版本是2.1,OkHttp最新版本是3.4.1,两者相比前一代版本都有较大的改动,由于本文重点是转载 2016-12-20 13:26:48 · 10817 阅读 · 2 评论 -
mac定时任务执行shell脚本运行jar包
1.背景:想用定时任务执行某个脚本然后实现定时发送钉钉机器人消息;2.构思:楼主是做Android开发的,由于不太懂phyon脚本,便想着用java来构建jar包并用shell脚本执行,然后用系统自带的定时任务执行shell脚本小插曲:查阅了资料,发现mac下并没有像Windows那样直接创建定时任务的功能,不过还是有解决方案的,接下里主角launchctl登场,launchctl...原创 2019-07-01 16:44:12 · 4490 阅读 · 0 评论 -
Android组件化方案
Android组件化项目地址:Android组件化项目AndroidModulePatternAndroid组件化之终极方案地址:http://blog.csdn.net/guiying712/article/details/780571201为什么要项目组件化 2如何组件化 3组件化实施流程 1组件模式和集成模式的转换 2组件之间AndroidManifest合并问题 ...转载 2018-05-25 11:28:59 · 2547 阅读 · 3 评论 -
8种ScaleType
演示图图片尺寸大于控件尺寸说明FIT_XY:对原图宽高进行放缩,该放缩不保持原比例来填充满ImageView。MATRIX:不改变原图大小从ImageView的左上角开始绘制,超过ImageView部分不再显示。CENTER:对原图居中显示,超过ImageView部分不再显示。CENTER_CROP:对原图居中显示后进行等比放缩处理,使原图最小边等于ImageView的相应边。CENTER_INS...转载 2018-03-05 15:07:32 · 322 阅读 · 0 评论 -
Android抽象布局——include、merge 、ViewStub
在布局优化中,Androi的官方提到了这三种布局、、,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,记下来权当做笔记。1、布局重用标签能够重用布局文件,简单的使用如下:[html] view plain copyLinearLayout xmlns:android="http转载 2018-01-17 10:26:30 · 218 阅读 · 0 评论 -
Android Studio 使用git的patch包
当我们在不同的分支上修复了bug后想更新到别的分支时就可以用as的patch功能了;1.首先在在as中选择version control面板,然后右击你要打patch的记录,然后create patch,如下图:在弹出的页面选择ok,如下图:这样一个patch就打好了;2.接下来看看怎么用:解下列点击as上的vcs,在弹出页面选择 apply patch,然后在弹出页面原创 2017-08-11 16:25:24 · 7684 阅读 · 0 评论 -
Android Base64字符串转换成图片
public Bitmap stringtoBitmap(String string){ //将字符串转换成Bitmap类型 Bitmap bitmap=null; try { byte[]bitmapArray; bitmapArray=Base64.decode(string, Base64.DEFAULT);bitmap=BitmapFa转载 2017-04-13 16:50:29 · 2168 阅读 · 0 评论 -
android activity启动的时候隐藏软键盘
1、概述android如果界面有EditText之类的跳软键盘的控件 在跳转到该界面是默认会跳出软键盘的。更何况有些需求要直接需要获取焦点如果是EditText就会有光标闪烁效果该属性的位置: com.rockerhieu.emojicon.EmojiconEditText android:id="@+id/upload_title_eidt" android:l转载 2017-04-11 15:52:51 · 513 阅读 · 0 评论 -
ConstraintLayout (约束布局)属性详情
app:layout_constraintLeft_toLeftOf//Constrains the left side of a child to the left side of a target child (contains the target child id).表示此控件的左边框与某个控件的左边框对齐或者在其右边视图1转载 2017-03-16 15:16:08 · 12913 阅读 · 1 评论 -
Retrofit2.0 公共参数(固定参数)
在实际项目中,对于有需要统一进行公共参数添加的网络请求,可以使用下面的代码来实现:RestAdapter restAdapter = new RestAdapter.Builder() .setEndpoint(ctx).setRequestInterceptor(new RequestInterceptor() { @O转载 2016-12-20 14:25:43 · 778 阅读 · 0 评论 -
Retrofit 动态参数(非固定参数、非必须参数)(Get、Post请求)
关键词:Retrofit 动态参数、非固定参数、非必须参数有如下场景:请求数据时: 1. 用户未登录时,不带参数userId; 2. 登录时带上参数userId.如下接口:@GET("index.php?r=default/homepage")Observable> getDataList(@Query("page") int page);@GET转载 2016-12-20 14:09:08 · 2824 阅读 · 0 评论 -
Retrofit2.0使用总结及注意事项
概述随着Google对HttpClient 摒弃,和Volley的逐渐没落,OkHttp开始异军突起,而Retrofit则对okHttp进行了强制依赖。Retrofit是由Square公司出品的针对于Android和Java的类型安全的Http客户端,如果看源码会发现其实质上就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口请求的底转载 2016-12-20 14:02:26 · 1315 阅读 · 0 评论 -
android中.classpath和.project作用
当在 Eclipse 里创建一个项目时,默认地会创建一个 .classpath 在项目的根目录下。这个文件时用编辑来保存文件名和其他依赖文件,以保证编译和运行成功。一般来说,这个文件会在你更新项目库文件的时候进行自动更新。所谓classpath就是class文件的路径,如果class文件的路径在classpath中,那么在cmd启用java解释class文件就不必非要定位在class文件目录中转载 2016-03-14 15:34:54 · 1121 阅读 · 0 评论 -
android AIDL 应用
在Android中,每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢?显然,Java中是不支持跨进程内存共享的,因此要传递对象,需要把对象解析成操作系统能够理解的数据格式,以达到跨界对象访问的目的。在Android中,则采用AIDL(Android Interface Definition Language :接口定义语言)方式实现。AIDL (Andro转载 2015-04-08 17:35:29 · 525 阅读 · 0 评论 -
在启动activity时添加动画效果
其实有很多方法可是实现,这里介绍常用的一种:注意1、必须在 StartActivity() 或 finish() 之后立即调用。2、而且在 2.1 以上版本有效3、手机设置-显示-动画,要开启状态//实现淡入浅出的效果startActivity(new Intent(MainActivity.this,SecondActivity.class));over原创 2014-02-12 09:50:25 · 2493 阅读 · 0 评论 -
eclipse常用快捷键
alt + shift+s :打开SOURCE目录shift+alt+J:快速文档注释ctrl+shift+?:XML快捷注释ctrl+shift+F 快速格式化ctrl+1 快速改错carl+. 快速查找下一个carl+n 快速创建类,XML文件等 alt+shift+r:重命名ctrl+m 大屏显示ctrl+o 快速定位想要修改的地方shi原创 2014-02-11 16:56:49 · 616 阅读 · 0 评论 -
使用MediaRecorder录制音视频
MediaRecorder类的使用有很多需要注意的地方,要严格按照官方的api操作,否则,各种问题..这是本人成功录制视频后的代码:原创 2014-02-11 17:04:13 · 718 阅读 · 0 评论 -
android时间戳转化为便准格式问题
使用即可String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(Unix timestamp * 1000))原创 2014-01-08 17:39:51 · 758 阅读 · 0 评论 -
关于ExpandableListView控件setOnChildClickListener无效问题
其实很简单,在适配器里面重写isChildSelectable的时候返回值切记为true,这样才能使得二级监听有响应。其次注意继承的是BaseExpandableListAdapter原创 2013-12-19 16:58:10 · 3889 阅读 · 4 评论 -
关于单例模式
首先,单例模式是对象的创建模式之一,此外还包括工厂模式。单例模式的三个特点:1,该类只有一个实例2,该类自行创建该实例(在该类内部创建自身的实例对象)3,向整个系统公开这个实例接口单例类在自身被加载时instance会被实例化,即便加载器是静态的。因此,对于资源密集,配置开销较大的单体更合理的做法是将实例化(new)推迟到使用它的时候。即惰性加载(Lazy loading),它原创 2013-11-27 15:18:43 · 942 阅读 · 0 评论 -
关于单例模式
首先,单例模式是对象的创建模式之一,此外还包括工厂模式。单例模式的三个特点:1,该类只有一个实例2,该类自行创建该实例(在该类内部创建自身的实例对象)3,向整个系统公开这个实例接口其又分为饱汉模式和饥汉模式:饥汉模式:一开始便创建自己的实例class Singleton { //私有,静态的类自身实例原创 2013-11-27 14:54:59 · 631 阅读 · 0 评论 -
includ的时候布局文件控制针问题!
今天做项目的时候由于用到多个布局,便把有些布局当成公共的来用,但是在findviewbyid的时候却报了空指针异常,逻辑明明没错,但是却报了这个异常,这让我很费解,后来经过一番调试终于终于找到问题的所在原来我在includ的时候在includ里面也设置了ID导致找不到布局里的id,把includ的id去掉即可解决异常;原创 2013-11-27 15:14:01 · 670 阅读 · 0 评论 -
关于接口回调
接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例.interface People { void peopleList();}class Student implements Pe原创 2013-11-27 14:30:44 · 809 阅读 · 3 评论 -
关于android开发中遇到的一些冲突
1.ListView item设置间距无效问题 android:divider="@android:color/transparent" android:dividerHeight="10.0dp"加上这些,则item设置间距就有效了还有linearlayout中如果不设置weight直接设置layout_gravity属性页是无效的,其次iteam的根原创 2013-10-21 17:27:35 · 818 阅读 · 0 评论 -
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tool
重装操作系统后,要重新配置Android开发环境。配置成功后,添加原本项目时却出现了错误!(有时导入工程的的时候)Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.解决方法:转载 2013-11-02 21:42:18 · 723 阅读 · 0 评论 -
工程内提示找不到类异常处理!并不是ACTIVITY 没有注册
最近在忙一个项目,由于时间周期比较短,所以晚上下班了之后便也把项目带了回去,结果发现导入工程到自己的电脑时一直提示找不到主类异常,并不是activity没有注册,因为在公司的电脑上却能运行的好好的!这让我很奇怪,后来经过一番调试,终于发现症结所在,原来是因为我由于项目需求改变所以我更换了工程的主ACTIVITY,但是manifest里的程序包并没有做相应改变,所以在导入到其他电脑环境是总是提示找不原创 2013-10-27 19:42:37 · 1099 阅读 · 1 评论