android
poorSir
这个作者很懒,什么都没留下…
展开
-
自定义标尺控件
示例功能描述通过输入的list节点表示标尺刻度,不规定每一个相同,当长度相同,取得的值只能是节点上的值,没有中间值。支持左滑右滑,滑动有动画,并且划过一般自动滑到节点,未满一半返回原节点。代码public class RulerView extends View { /**屏幕宽度*/ private int screenWidth; /**控件高度*/ privat原创 2018-01-19 16:04:35 · 1538 阅读 · 0 评论 -
android基本知识
android知识图谱知识图谱性能优化Android APP性能优化的四个方面最全总结 布局优化: 减少布局层级,不要再主线程做耗时操作。使用ViewStub,提高显示速度。布局复用,删除控件中无用属性。 避免过度绘制: 移除XML中非必须的背景,移除Window默认的背景、按需显示占位背景图片。使用canvas.clipRect()来帮助系统识别那些可见的区域,只有在这个区域...原创 2018-02-27 16:43:22 · 543 阅读 · 0 评论 -
android的安全知识
WebView主要包括三种漏洞:任意代码执行 Android4.2以后,通过addJavascriptInterface注解的方法可被网页中的java方法调用。如果未加过滤则可能存在漏洞 挖掘方法: 编写遍历对象的网页,如果存在getClass方法则存在远程代码执行漏洞 fiddler的before脚本可以让任意webview访问任意网页时进行测试域控制不严格 WebView...原创 2018-04-20 09:18:50 · 348 阅读 · 0 评论 -
android九宫格可分页加载控件
github地址 基本思路是viewpager+gridview,每一页viewpager视图有一个gridview,gridview加载九格。所以要保证数据的准确性。数据以List< List < T>>的形式。控件实现了高度自适应,根据控件的个数,计算控件的高度。内部的viewpager和gridview视图都以动态创建,无需新建一个xml文件,整原创 2018-08-31 10:19:30 · 803 阅读 · 1 评论 -
android各版本的兼容问题
自动安装在Android7.0自动安装做出了修改,android8.0增加了权限//以前 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive...原创 2018-09-28 20:05:55 · 1571 阅读 · 0 评论 -
android附件上传下载(图片,语音,视频)
上传所有的上传都是一样的都是转成流的形式发送给服务器,注意写入body是一个异步操作,我写的网络发送(okhttp+rxjava)也是异步的,所以在部分机型上会报错,java.net.ProtocolException: expected 6137 bytes but received 7081 ,这是因为还没有把所有数据写入body就发送了,所有可以在写入完成之后再发送。 final Fil...原创 2018-11-20 10:21:53 · 2157 阅读 · 0 评论 -
android九宫格锁屏控件
public class LockView extends View { //半径 private int radius; //中心小圆半径 private int smallRadius; //一行个数 private int column; //选中颜色 private int selectColor; //未选中颜色...原创 2018-11-20 10:36:03 · 788 阅读 · 0 评论 -
android在线预览office
1. 集成腾讯TBS文件浏览(推荐)参考tbs只支持本地文件的加载,需要先将文件下载下来。文件上传下载根据官方demo很容易集成2.通过webView加载微软:https://view.officeapps.live.com/op/view.aspx?src=(输入你的文档在服务器中的地址); (有时不知道为什么访问不到服务器)谷歌:h ttps://docs.google.com/v...原创 2019-04-22 17:05:11 · 2733 阅读 · 0 评论 -
android架构框架设计
为了开发效率,记录一下自己的开发框架,整体使用mvvm的模式,使用android自带的databinding开发数据驱动的页面逻辑。大致分为几个部分,common存放一般在各个模块都会用到的类,module是项目模块,主要是业务模块,如user用户模块,user下有有三个包ui/model/viewCtrl ui存放该模块下的Activity,viewCtrl存放的是业务处理逻辑类,用过dat...原创 2019-06-27 10:32:58 · 3397 阅读 · 1 评论 -
初识mvp
刚刚开始看mvp,以下是自己浅显的见识,尽做笔记使用。原创 2017-09-30 14:42:07 · 193 阅读 · 0 评论 -
android 调起h5页面微信支付
最近在做app的支付功能。具体过程在app中获取后台支付url(聚合支付)直接调起微信支付页面。app向webview传入url直接调起网页。以下为webview的部分代码:webView.getSettings().setJavaScriptEnabled(true);//支持js webView.setWebViewClient(new WebViewClient());//对webview页原创 2017-10-31 16:17:26 · 4549 阅读 · 0 评论 -
android采坑记录
ScrollView控件中的match_parent无效添加android:fillViewport=“true”属性轮播banner,数据源更新界面无法更新其实也不是无法更新,内部有viewPager首页刷新无效,会在之后的pager里显示新的数据源中的东西。内部已经调用了adapter.notifyDataSetChanged()。这是viewPager的机制可以参考viewPag...原创 2017-11-21 09:56:24 · 616 阅读 · 0 评论 -
自定义密码输入框
示例 原理继承EditText的自定义控件,当输入字符的时候,监听字符变化,绘制边框和内容。代码Android KeyCode表public class PasswordInputEdit extends android.support.v7.widget.AppCompatEditText { private Paint rectPaint; private Paint te原创 2018-01-19 14:59:43 · 511 阅读 · 0 评论 -
GreenDao的使用与封装
官方api文档 SQLite可视化工具下载地址 Personal为免费版本配置在项目build.gradle中配置 dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0' }在你要使用的模块下的build.gradle配置(我是直接在app模块下)apply plugin: 'org.green原创 2018-01-19 14:04:00 · 1108 阅读 · 0 评论 -
Realm的使用
Realm 是一个移动数据库,可运行于手机、平板和可穿戴设备之上。可以让你的应用更快速,带来难以想象的体验。其目标是为了代替 CoreData 和 SQLite 数据库。 Realm非常易用,不是在SQLite基础上的ORM,它有自己的数据查询引擎。是完全重新开发的数据库,速度非常快,并且支持跨平台,数据加密,数据迁移,支持json,流式api等 官网 realm优缺点介绍 现在已经有了re原创 2018-01-15 18:00:46 · 9901 阅读 · 0 评论 -
android动态添加布局(基于mvvm和databinding)
android 常常需要动态添加布局例如: 需要后台返回的天数个数来动态添加布局,有一下几种写法:方式1。 基于recycleView recyclerView使用了基于mvvm和databinding的框架github地址xml布局,通过后台返回天数的数量daySize显示多少个布局<?xml version="1.0" encoding="utf-8"?><layout xmln原创 2017-12-29 17:24:48 · 6552 阅读 · 2 评论 -
android与h5交互
android app 为了避免对频繁改动的页面改动从而不断更新版本,常常会对那些页面使用h5页面,直接在h5页面访问android原生代码或者调用h5中的方法。 android中通过webview加载页面。 WebSettings webSetting = binding.webView.getSettings(); // 是否允许在webview中执行javascript原创 2017-12-14 11:20:27 · 422 阅读 · 0 评论 -
retrofit2+okhttp3+rxjava网络封装
这是android的网络底层封装,可以简便的使用网络调用,对网络返回进行统一的封装处理。 先上代码,以登录为例 下面是使用代码//先通过单例模式获取retrofit对象,调用api类访问接口。 Observable<HttpResult<TokenRec>> call = NetConnect.getInstance().getService(UserService.class).userLo原创 2017-12-06 16:14:32 · 2681 阅读 · 0 评论 -
基于Android-Skin-Loader的换肤效果
skin-loader框架的换肤是通过插件化的形式替换资源文件,实现换肤效果。好处是可以在线更新皮肤换肤 android-skin-loader源码Demo样例 流程整个框架大概的流程是加载皮肤包,找到被标记的控件,通过自定义的Factory工程过滤掉其他控件,使用皮肤包中的资源文件更新被标记的ui。使用操作导入android-skin-loader框架包 androidStudio Fil原创 2017-11-27 15:25:55 · 1693 阅读 · 9 评论 -
android需要了解学习的知识
RecycleViewmvvm封装recycleView好用的控件SwipeToLoadLayout下拉刷新控件 底部导航栏 Banner广告轮播 粘性头部pickview仿支付宝密码工具库圆形进度Sweet Alert Dialog弹框控件分类汇总Android开源项目分类汇总URL路由ActivityRouterARouter...原创 2017-11-21 10:26:59 · 367 阅读 · 1 评论 -
android录屏功能
思路android实现录屏功能有两种方案,一种是直接使用android自带的MediaProjectionManager实现录屏功能,第二种是是只录语音,用户的操作通过某种方式进行记录保存,最后通过某种协议进行播放。两种方案各有各的优缺点,前者实现方式简单,但无法只录制特定区域的画面,并且生成的视频文件一般都比较大。后者实现较为繁琐,音频录制android7.0之前没有暂停方法,只能生成多个文...原创 2019-09-27 15:32:34 · 1757 阅读 · 0 评论