
Android
爱喝白酒的啤酒猫
这个作者很懒,什么都没留下…
展开
-
百度地图
Android地图: 功能介绍: 1.地图: 提供地图展示和地图操作功能; 地图展示包括:普通地图(2D,3D)、卫星图和实时交通图 地图操作:可通过接口或手势控制来实现地图的点击、双击、长按、缩放、旋转、改变视角等操作。 地图展示:开放高清4K地图显示 2.POI检索 Point of Interest,中文可以翻译为“兴趣点” 支持周边检索、区域检索、城市内检索和Place详情原创 2016-10-15 14:43:07 · 1393 阅读 · 0 评论 -
android studio 导入module作为lib使用
android studio 导入module作为lib使用1.将 android module导入 android project 中 2.在要作为lib导入的module 的build.gradle文件中添加一行 “apply plugin: ‘android-library”’ 3.在要使用的module中将导入的module作为依赖库原创 2017-05-18 15:07:26 · 21230 阅读 · 8 评论 -
Android studio2.3.2 配置kotlin、Anko
祝:本文配置基于Android studio 2.3.2,gradle3.3,jdk1.8 1.下载kotlin插件 打开Settings面板,找到Plugins选项,点击Browse repositories(浏览仓库),输入“Kotlin”查找,然后安装即可。安装完成之后需要重启Android Studio (切记!)。 2.配置project的build gradle 在project原创 2017-06-12 11:26:04 · 3115 阅读 · 0 评论 -
android editText 控制输入最大值、保留两位小数、保留小数点前面两位数
常用方案: 1.在editText的监听addTextChangedListener中逻辑判断 2.使用editText的setFilters(new InputFilter[]),设置输入过滤。保留小数点后两位方法: 1.设置editTextview的inputtype: editText.setInputType(InputType.TYPE_NUMBER原创 2017-08-07 19:53:02 · 4011 阅读 · 0 评论 -
Android 使用SpannableString设置金钱文本显示
1.未完待续 2.简单例子 3.参考:http://www.jianshu.com/p/84067ad289d2SpannableString str = new SpannableString("¥300.00"); RelativeSizeSpan sizeSpan = new RelativeSizeSpan(0.8f); str.原创 2017-08-16 10:54:52 · 479 阅读 · 0 评论 -
android app版本升级(DownloadManager、适配6.0、7.0)
说明: 1.本文使用系统DownloadManager在通知栏更新下载进度 2.动态权限使用第三方库EasyPermissions(https://github.com/googlesamples/easypermissions) 3.下载完成的App安装适配7.0 4.提示下载框(AlertDialog)是依附于Activity(UpdateActivity)的,这样做是为了原创 2017-06-20 18:11:18 · 14968 阅读 · 0 评论 -
android edittext 输入字数限制 超过最大字数toast
1.不实时显示已经写入字体 etEvaluateContent.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {原创 2017-08-17 10:51:00 · 4868 阅读 · 0 评论 -
Android studio接入融云IM
说明: 官方网址:http://www.rongcloud.cn/ 1.融云SDK 将各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载。 2.IM 界面组件 - IMKit ,IM 通讯能力库 - IMLib ,注意使用IMKit的时候必须要引入IMLib,但可以单独使用IMLib,由自己完全开发的界面代替IMKit. 3.PushLib用于融云推送的保活,原创 2017-08-05 17:45:21 · 2761 阅读 · 1 评论 -
greenDao3.x 深入使用
参数类型1.默认参数 byte, Byte short, Short int, Integer long, Long float, Float double, Double boolean, Boolean byte[] String Date2.自定义参数 使用数据库支持的原生数据类型通过PropertyConverter类转换成原创 2017-09-06 17:54:11 · 640 阅读 · 0 评论 -
Android studio 使用Hierarchy Viewer
注意: 1.HierachyViewer无法连接真机调试 ,只能在studion中连接模拟器调试。 2.本文基于AS 2.3.3. 3.APP先运行起来再使用Android Device Monitor。启动Android Device Monitor第一种 依次点击菜单Tools>Android>Android Device Monitor,如下图: 第二种 直接点击菜单原创 2017-08-30 10:53:58 · 829 阅读 · 0 评论 -
This view is not constrained vertically: at runtime it will jump to the left unless you add a vertic
Android studio 使用约束布局(ConstraintLayout)报错: This view is not constrained vertically: at runtime it will jump to the left unless you add a vertical constraint less… (Ctrl+F1) The layout editor allo原创 2017-06-08 16:24:27 · 32238 阅读 · 6 评论 -
Error:Unable to find method 'com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()L
android studio 3.0 canary3报错: Error:Unable to find method ‘com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava/util/List;’. Possible causes for this unexpected error in原创 2017-06-08 12:41:14 · 1651 阅读 · 0 评论 -
Android生成PDF文件、webview加载本地PDF或者网络PDF
生成pdfAndrid端生成PDF局限性太差,尚未有优雅的解决方案。但网上众说纷纭,实践者少之又少,高质量的博文也是凤毛麟角,大家都是博文搬用工,也没有谁做过详细的探索。笔者就自己的一点经验做点分享。 使用iText iText不支持中文,要支持中文需要引入额外包需要添加一个额外的jar包:itext-asian.jar。亲测较好的方案直接引入再次封装过的jar包:http://downlo原创 2017-06-28 16:51:07 · 6616 阅读 · 0 评论 -
[详细]android自定义view
自定义view如果android sdk中提供的原生控件不能满足程序的开发需求时 考虑使用自定义view 自定义view的分类1.**完全自定义** 一般直接继承view然后重写相应的函数进行绘制 2.**继承已存在的控件** 一般继承view的具体子类重写绘制 3.**组合控件** 一般继承viewGroup重写绘制原创 2016-10-15 15:56:18 · 653 阅读 · 0 评论 -
图片压缩、二次采样
在开发app的过程中 当图片的尺寸较大或者是图片的数量较多时 就容易出现OOM异常(内存溢出) 为了解决这个问题需要对图片进行处理。图片的处理包括两方面 **质量压缩**(不改变图片的尺寸)和**尺寸压缩**(相当于像素压缩) 质量压缩一般用于**上传**大图片之前的处理 可以节省流量; 尺寸压缩一般生成缩略图原创 2016-10-15 16:17:36 · 736 阅读 · 0 评论 -
[简单]Android中的事件分发各方法
onTouchEvent()表示对事件处理的方法 如果事件传播到该类中 表示该类调用onTouchEvent()方法处理该事件1. 如果该函数返回false 表示不进行事件的处理 将事件进行**回传**(回传给上层的view或者是viewGroup, 由上层的view调用自己的onTouchEvent()方法处理,*如果上层的view也未进行事件处理onTouchEvent() 返回...原创 2016-10-15 19:24:04 · 267 阅读 · 0 评论 -
[详细]Android中的动画
Android中动画的分类 View Animation视图动画 只是实现动画效果 对view本身的属性并未有影响 Frame 帧动画 iv.setBackgroundResource Tween 补间动画:淡入淡出 缩放 平移 旋转 淡入淡出 透明度的改变 缩放 宽高尺寸 平移 位置 旋转原创 2016-10-15 20:23:57 · 296 阅读 · 0 评论 -
[详细]Android适配
适配的目的 就是为了app在不同的语言、不同的屏幕、不同的平台中都能够平稳运行适配从三方面考虑 1.语言适配 国际化 i18N 当app发布到设备时 动态的修改设备的语言 app中的文本跟随语言改变 project res values strings.xml values-en strings.xml原创 2016-10-15 20:41:19 · 299 阅读 · 0 评论 -
android中的代理、注解
什么是代理模式? 作用:为对象提供一种代理控制对对象的访问代理模式的好处? 不想或者是不能直接引用访问另一个对象 代理对象可以在目标和使用者之间起到**中介**作用 代理模式涉及的角色 **抽象角色** 声明真实对象和代理对象共同的接口 **代理角色** 代理角色对象的内部都持有真实的对象的引用 操作真实的对象 **真实角色** 代理角色所代表的角色原创 2016-10-16 12:33:25 · 408 阅读 · 0 评论 -
Retrofit使用案例、源码简析
Retrofit使用步骤1.定义一个接口(封装url地址和数据请求) 2.实例化Retrofit 3.调用Retrofit实例创建接口服务对象 4.接口服务对象调用接口中的方法获取Call对象 5.call对象执行请求(异步、同步请求)原创 2016-10-16 12:56:42 · 400 阅读 · 0 评论 -
Android 沉浸式状态栏
1.状态栏和导航栏存在,且都为透明,根据当前的xml布局文件的颜色变化而变化。 模拟器效果: 实现代码:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreat原创 2017-06-02 10:50:17 · 291 阅读 · 0 评论 -
android studio 常用快捷键集锦
一直在studio中使用eclipse的快捷键,今天突然想改换成studio的快捷键。简单记一下常用快捷键。】Ctrl+D: 集合了复制和粘贴两个操作,如果有选中的部分就复制选中的部分,并在选中部分的后面。(好奇葩…)Ctrl+斜杠 、Ctrl+shift+斜杠: Ctrl+斜杠:注释或取消注释当前行或选中的代码块,以双斜杠的方式即“//” Ctrl+shift+斜杠:注释或取消注释选中的代码原创 2017-08-22 10:35:52 · 354 阅读 · 0 评论 -
Android 启动活动的最佳写法
常见写法 通常一个activity(FirstActivity)显示启动另一个activity(SecondActivity)的写法如下,在第一个activity中: Intent intent = new Intent(FirstActivity.this,SecondActivity.class); intent.putExtra("param1",data1);原创 2017-09-16 10:41:38 · 758 阅读 · 0 评论 -
PopupWindow7.0及以上全屏问题
问题描述:PopupWindow在7.0级以上手机上showAsDropDown()方法失效,任然全屏。 解决方案:自定义CustomPopupWindow继承PopupWindow,重写showAsDropDown()方法@Override public void showAsDropDown(View anchor) { //Android7.0适配 ...原创 2018-03-09 14:05:35 · 1375 阅读 · 0 评论 -
DialogFragment 圆角背景实现
效果: 1.在dialogFragment中动态设置背景色为透明色,注意在xml布局文件中设置并不会起作用。 2.定义布局圆角shape 3.在xml中以 android:background的方式引入。/***DialogFragment */ @Nullable @Override public View onCreateView(LayoutInflate...原创 2018-03-23 13:31:19 · 5430 阅读 · 0 评论 -
Annotation processors must be explicitly declared now.
在主module中的defaultConfig{}中添加javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } }原创 2018-05-17 18:24:40 · 1447 阅读 · 0 评论 -
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Message
Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Message 只有空安全(?)或非空的声明(!!)被允许在类型消息的可空接收器上调用。 1.?:在非空的情况下执行语句,为空时直接返回null 1.!!:表示忽略语言的判空检查,即允许程序报NullP...原创 2018-05-23 15:53:19 · 8663 阅读 · 0 评论 -
android studio 中无法在线下载插件
在android studio中按照以下步骤操作即可解决: File->Settings->Apparence & Behavior->System Settings->Updates->use secure connnection的勾去掉原创 2018-06-21 10:09:00 · 1093 阅读 · 0 评论 -
android studio中xml布局无法预览
现象描述: android开发中xml布局文件无论是在Design视图下还是text视图下都没法加载预览效果图。解决方案: 仔细检查xml布局是否有报错的地方,若有请解决完错误后再次尝试。 clean project后再次尝试。 ...原创 2018-06-27 11:24:25 · 1523 阅读 · 0 评论 -
Could not find matching constructor for: org.gradle.util.Clock()
检出Android studio中的grdle配置; 示例: project中的com.android.tools.build:gradle版本号为:2.3.3 dependencies { classpath 'com.android.tools.build:gradle:2.3.3' } 则对应gradle目录下的wrapper文件家中的gradle...原创 2018-07-09 18:13:39 · 8630 阅读 · 1 评论 -
Disconnected from the target VM, address: 'localhost:8602', transport: 'socket'
Android studio Attach debugger to android process 报错: Disconnected from the target VM, address: ‘localhost:8602’, transport: ‘socket’ 解决方案: 把debugger模式由auto改成java...原创 2018-07-09 21:19:11 · 49641 阅读 · 8 评论 -
dev:dev fatal: HttpRequestException encountered. remote: Invalid username or password. fatal: Authen
描述: 使用sourcetree提交代码到GitHub时提示“dev:dev fatal: HttpRequestException encountered. remote: Invalid username or password. fatal: Authentication failed for ‘https://github.”解决方案: 1.在Git...原创 2018-06-28 14:15:03 · 1065 阅读 · 0 评论 -
Android gradle3.x中 implementation 、compile、api区别
compile与api 二者等同,无区别implementation与compile或implementation与api implementation编译的依赖只作用于当前的module。即APP module依赖了core module,core module中使用implementation编译的三方库(如glide)只对core module起作用,app modul原创 2018-01-20 15:22:08 · 10092 阅读 · 0 评论 -
Android studio app项目红叉无法编译
错误现象如下: 点击run按钮: 可以看到有明显的错误提示: Error: Please select android sdk 解决方案: 主要是修改了.iml(xxx:要run的module名,比如本文的主module:sample) 文件引起的,主要检查.iml文件的以下代码: type="jdk" jdkName="Android API 26 Platfo原创 2018-01-19 17:02:05 · 4461 阅读 · 0 评论 -
TextView 多行文字末尾添加图片
private TextView content;String showText="我是多行文字,我末尾需要添加一张图片";//注意此处showText后+ " "主要是为了占位 SpannableString ss = new SpannableString(showText + " "); int len = ss.length(); //图片 Drawable d原创 2018-01-10 14:45:54 · 6056 阅读 · 1 评论 -
代码审查(Code Review)清单
常规项 代码能够工作么?它有没有实现预期的功能,逻辑是否正确等。 所有的代码是否简单易懂? 代码符合你所遵循的编程规范么? 是否存在多余的或是重复的代码? 代码是否尽可能的模块化了? 代码是否尽可能的模块化了? 是否有被注释掉的代码? 循环是否设置了长度和正确的终止条件? 是否有可以被库函数替代的代码? 是否有可以删除的日志或调试代码? 大致过程流原创 2017-08-30 17:02:35 · 1116 阅读 · 0 评论 -
Android运行时权限(危险权限)
Android现在将所有权限分为两大类:一类是普通权限,一类是危险权限。普通权限系统会默认申请,危险权限需要用户手动授权。危险权限一共是9组24个权限,9组分别为日历、拍照、联系人、位置、麦克风、电话、传感器、短信及存储。 权限名称 权限名 CALENDAR (日历) READ_CALENDAR、WRITE_CALENDAR CAMERA (相机) CAMERA CONTA原创 2017-09-16 11:48:54 · 3659 阅读 · 1 评论 -
Java设计模式-责任链模式
概念 使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递改请求,直到有对象处理它为止。角色说明Handler:抽象处理者角色,声明一个处理请求的方法,并保持对下一个处理节点Handler对象的引用。 ConcreteHandler1(ConcreteHandler1): 具体的处理者,对请求进行处理,如果不处理就讲请求转发原创 2017-12-05 11:20:37 · 244 阅读 · 0 评论 -
Android Studio 打包签名Signature Version V1 V2说明
在进行打包流程中有一项需要选择签名版本: signature version的区别 V1:可对签名后的文件,作适当修改,并重新压缩。 V2:不能对签名后的 APK作任何修改,包括重新解压。因为它是针对字节进行的签名,所以任何改动都会影响最终结果。正确选择姿势: 1.只勾选v1签名所有机型都能用,但是在7.0及以上不会使用更安全的验证方式; 2.只勾选V2签名原创 2018-01-11 14:24:47 · 3911 阅读 · 0 评论 -
android仿微信发状态图片上传
常见的两种UI样式: 1.列表最后一张默认显示的是一张“加号”图片,点击可以拍照或者从相册中选择照片。当已选图片超过自定义最大张数(比如9张)时,“加号”图片消失。 2.列表第一张始终是默认的”加号”图片,点击可以拍照或者从相册中选择照片。当已选图片超过自定义最大张数(比如5张)时,“加号”图片不消失。 实现思路: 样式一: 整体布局为recycleview,recycl原创 2018-01-23 17:09:36 · 3903 阅读 · 1 评论