
android
文章平均质量分 73
沐左21
基础不牢,地动山摇。
展开
-
ConstraintLayout 约束布局
当控件B ,View.visible 或者 View.invisible时,设置的数值,看不出任何效果 ,即边距无效;当控件B ,View.visible 或者 View.invisible时,设置的数值 相对于控件B有效;当控件B ,View.Gone时,设置的数值,就相对于控件A有效了。当控件B ,View.Gone时,设置的数值,就相对于控件A有效了。通过上面的解释,应该已经清楚了,‘’B 在 A 的右边“ ,就是。当前控件的 Top ,相对于 parent 的Top进行约束;原创 2022-10-09 11:11:02 · 1312 阅读 · 0 评论 -
进程间通信,数据流传递(AIDL、Socket)
进程间通信Android 四大组件Android 进程间通信可以通过Android 四大组件实现。Activity**使用 Intent **Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:12345678" ); startActivity(callIntent);Content ProviderContent Provider可以跨进程访问其他应用程序中的数据(以Cursor对象形式返回),当然,也原创 2020-05-18 14:10:26 · 2397 阅读 · 0 评论 -
Gradle 依赖库下载
Gradle 依赖库下载在我们使用Gradle下载相关依赖库的时候,经常会出现下载过慢或者下载不了的情况。相关原因及尝试解决办法如下:无法找到目标路径//原因:无法找到到请求目标的有效认证路径Cause: unable to find valid certification path to requested target可能是AS开启了离线模式,关闭离线模式后重新尝试或许可以解决。...原创 2020-04-07 10:28:22 · 2680 阅读 · 0 评论 -
开发工具使用(Android Studio、SQLite Expert 、TortoiseSVN)
8、AS加载的Module无法运行在project 下的setting.gradle文件中include 即可7、AS加载项目出错Android studio Cannot load module解决:close project , import project,删掉项目重新导入6、修改SVN用户名密码百度经验–怎么改svn的登陆账号在Tortois...原创 2017-08-02 14:07:46 · 1815 阅读 · 0 评论 -
编码细节提升
敲代码过程中, 老是忽略一些小问题, 或者使用过的比较好用的东西后面又记不起来了 所以,单开一贴以作记录。### 47、版本号正则表达式 “` /** * 匹配版本号 ^\d+(.\d+)+*/ public static boolean isVersionCo...原创 2017-03-27 10:07:47 · 722 阅读 · 0 评论 -
使用PhotoView实现图片查看
项目需要实现图片查看的功能,使用ImageView不能缩放、使用系统的图片查看器又不能符合自己的定制化需求,所以我就使用Viewpager + PhotoView 来实现了。引入PhotoViewPhotoView 的Github链接,PhotoView旨在帮助开发者轻松实现Android ImageView的缩放。1、配置仓库地址在项目的build.gradle文件中加入以下代码allprojec原创 2017-12-26 18:51:07 · 8549 阅读 · 0 评论 -
使用Retrofit搭建自己的网络请求框架
相关文章:Retrofit2与RxJava用法大全RxJava2+Retrofit2实现网络请求和解析封装给 Android 开发者的 RxJava 详解Android RxJava2+Retrofit2搭建网络请求框架这里写链接内容Retrofit2+Rxjava2之优雅的封装Retrofit — 用实现Basic Authentication(2)HTTP使用BASIC认证的原理及实现方法1、R原创 2017-04-01 09:13:31 · 514 阅读 · 0 评论 -
Android存储、上传、下载
参考文章1、彻底理解android中的内部存储与外部存储2、谷歌官方文档参考1、 需求在android开发中常用的存储、上传、下载,之前反反复复写过很多遍,现在进行一些整理,方便后面直接搬运代码。尤其是在android7.0及以上版本中又加强了对存储安全的控制,所以整理整理还是很有必要的。2、 认识android的存储系统android中的存储类型共享首选项 在键值对中存储私有原始数据。内部原创 2017-12-06 15:03:51 · 3253 阅读 · 0 评论 -
LitePal结合SQLCipher实现DB数据库操作和加密
2017/3/12 22:19:08 项目需求公司做的一个需要大量本地数据操作的项目,并且需要对数据库进行加密处理。这里有两个点:一、大量的数据库相关操作,so,我打算使用数据库操作框架—-LitePal;二、 数据库加密,对于数据库加密,我打算使用SQLCipher。好了,需求的问题说完了,就开始实际操作了。LitePal 简介 LitePal是一款开源的Android数据库框架,它原创 2017-03-19 12:04:10 · 3822 阅读 · 2 评论 -
Android 6.0及运行时权限处理
需求现在android版本出现到了7.0,今后高版本的android肯定会占据市场的主流,所以在我们的应用中进行运行时处理,也是势在必行的了。 引用郭霖对android运行时权限的总结,一共9组24个权限,只有在android6.0 及以上的android机上使用到这些权限的时候,才需要进行运行时权限处理. 使用场景前提:应用运行到android 6.0 及以上...原创 2017-03-21 09:10:15 · 3215 阅读 · 0 评论 -
应用内打开京东、淘宝指定商品或店铺页面
1、打开第三方应用指定界面要想打开第三方APP指定的界面需要 知道该App 的 URL SCHEME,这里我列举一些,具体的可以在网上搜索到。 淘宝: taobao:// 微博: weibo://qrcode 微信: weixin://scanqrcode 支付宝: alipayqr://platformapi/startapp?saId=10000007 豆瓣原创 2017-06-28 18:54:23 · 44355 阅读 · 8 评论 -
GIS地图学习笔记二之Android开发
新项目中需要用到GIS地图,触及自己的知识盲区。所以有必要去学习一下,这里把学习过程与思考记录一下。我这里使用的是ArcGIS Runtime SDK 100.2.0,ArcGIS Runtime还有一个版本10.2.*,这个版本的ArcGIS Runtime SDK 的使用可以参考《ArcGIS Runtime SDK for Android开发笔记》系列blog。1、找资料1、...原创 2017-12-02 14:26:13 · 15846 阅读 · 1 评论 -
Gradle 实现 Android 多渠道定制化打包
我们可以利用Gradle 实现Android的 多渠道定制化打包ProductFlavors同时生成多渠道多版本的操作主要是靠productFlavors 来实现的,branchA、branchB 是自定义的渠道名,这里定义的类型会在最终打包的时候出现,选择其中自己需要版本进行最终的打包即可(可多选)。android{ productFlavors{ ...原创 2018-08-09 09:19:54 · 1984 阅读 · 0 评论 -
Android 单元测试
测试代码中的方法没有被Mock在写本地单测的时候,会遇到android.jar某个方法没有被Mock的情况,此时可以通过如下配置:android { // ... testOptions { unitTests.returnDefaultValues = true }}自动创建测试类在目标类的空白区域,右键-- Go To – Test,Create New ...原创 2018-09-18 23:22:08 · 344 阅读 · 0 评论 -
Room框架学习、使用
Room Persistence Library(官方介绍)官方ORM(Object Relational Mapping)框架专题Google官方推出的Android架构组件系列文章(六)Room持久化库Room 的官方API 可以查看这里##介绍Room是谷歌官方的数据库ORM(对象关系映射)框架,使用起来非常方便。Room提供了一个SQLite之上的抽象层,使得在充分利用SQ...原创 2018-10-25 10:37:04 · 5426 阅读 · 3 评论 -
java中计算平面图形夹角
在代码中我们知道了ABC,DEF等六个点的坐标,现在需要求出∠A 和 ∠D 的度数。怎么计算?(这个其实是一道数学题,只是需要我们用代码写出来,先来回顾一下之前的三角函数和反三角函数)1、三角函数锐角三角函数进行角度计算的时候,我们先来回顾一下三角函数,当我们需要计算某个角的三角函数时,我们可以通过构造直角三角形,即把这个角放到某个直角三角形中,然后利用这个直角三角形的三条边长进行...原创 2018-11-30 15:43:56 · 3993 阅读 · 1 评论 -
Android Studio生成Jar包
app 模块(application应用)生成 jar 包build 文件1、apply plugin: 'com.android.application'----> apply plugin: 'com.android.library'2、去掉applicationId "com.kingoit.yzt"3、创建打包方法task makeJar(type: Copy)mak...原创 2018-11-30 15:45:31 · 2687 阅读 · 0 评论 -
SQLite 数据库打开异常时删除DB文件
SQLite 在打开DB文件时,如果遇到打不开的情况,会删除DB 文件,有点凶残。我们来查看源码1、android.database.sqlite.SQLiteDatabaseprivate SQLiteDatabase(String path, int openFlags, CursorFactory cursorFactory, DatabaseErrorHandler erro...原创 2019-07-23 14:52:08 · 1706 阅读 · 1 评论 -
SQLite学习七、更新DB数据库中BLOB字段值
在代码中直接用update 语句执行会报错,需要使用 ContentValues 传入参数,进行更新 private void saveFile2LocalDB(String url) { SQLiteDatabase wyhcjgDb = WyhcJgDBManager.getInstance().getDbHelper().getWritableDatabase(En...原创 2019-07-23 14:52:48 · 2046 阅读 · 0 评论 -
SQLite学习八、TEXT类型读取超过2M的字符串
TEXT类型读取超过2M的字符串的时候报错Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.关于SQLite 不同类型存储数据大小的限制1、CHAR。CHAR存储定长数据很方便,CHAR字段上...原创 2019-07-23 14:53:30 · 8852 阅读 · 0 评论 -
常用计时器实现
两种实现方式1定义内部计时类2使用handler-message原创 2017-03-29 11:52:40 · 1143 阅读 · 0 评论 -
读取本地json数据实现省市区三级联动PickerView
首先是省市区的json数据项目目录结构使用代码附上项目中使用到的完整类 这个功能在应用中还是用的比较多的,这里我将之前的一个电商项目中使用到的省市区三级联动选择器的代码粘出来,需要的自取。实现UI如图:首先是省市区的json数据资源已经上传,在我的资源页,文件名area.json,链接如下:http://download.youkuaiyun.com/download/m0_37168878/9800原创 2017-03-31 18:48:49 · 11175 阅读 · 3 评论 -
窗口背景随弹窗的出现而渐变
之前写都是点击弹窗的时候直接将背景变成半透明,但是客户要求进行渐变1、窗口渐变工具代码实现渐变的代码如下public class WindowsBgAlpha { private Activity mActivity; Handler handler = new Handler(); public WindowsBgAlpha(Activity activity) {原创 2017-11-22 16:54:05 · 659 阅读 · 0 评论 -
使用PopupWindow实现Spinner的下拉列表
系统自带的Spinner实在不好用,所以我们用PopupWindow来实现同样的效果1、布局 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical"原创 2017-11-23 14:21:40 · 3584 阅读 · 1 评论 -
Sophix热更新的使用
热更新的框架有太多,我们就结合自己的项目情况进行选用就可以了,这里粘上我网上down的几张各个热更新框架的区别阿里的热更新框架Sophix的收费 官方文档 它有一个收费阀值 每个账号,每月5万台设备免费。 每个账号,平均到每台设备,一天免费调用20次。 补丁包使用,完全不做限制。不额外计费。 每月5万台设备免费。 按照正常调用,平均每台设备20次调用,完全是够原创 2017-08-18 17:49:55 · 3867 阅读 · 0 评论 -
ZXing二维码、条形码生成和扫描
1、条形码和二维码的编解码过程可以看->这篇blog。<- 2、由于新项目的需求,需要扫描二维码和条形码,而且有可能是在暗光环境下进行,所以这篇文章加上扫描以及打开闪光灯的功能,网上找了下->这个<-demo比较合乎要求,所以我们下载下来改一改代码。1、集成ZXing.jar包ZXing包可以自行百度下载,也可以去我的资源页下载,点这里2、EncodingUtils–二维码、条形码生成工具类pub原创 2017-09-29 14:15:46 · 4747 阅读 · 0 评论 -
Map&List排序
有时候,后台返回的list数据是无序的,但是显示的时候需要按照一定的顺序显示。 又或者一些map数据需要排序。原创 2017-05-10 09:54:45 · 401 阅读 · 0 评论 -
画条虚线
虚线的分割线shape画虚线shape_imaginary_line.xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> <stroke android:color="@color/co原创 2017-11-22 14:17:50 · 280 阅读 · 0 评论 -
Android中实现连续点击功能
1、连点进入隐藏设置最新的项目需求,连续点击5下后进入隐藏设置的功能代码如下: /** * 去往接口服务器设置 */ private long[] mHits = new long[5]; private void ShowServerSetting() { System.arraycopy(mHits, 1, mHits, 0, mHit原创 2017-11-21 17:41:42 · 3767 阅读 · 0 评论 -
Android 快速发布开源项目到jcenter
场景上一篇blog介绍的是如何把代码上传到Github上,这篇就讲如何把开源库发布到JCenter方便他人引用。 如同这样compile 'com.android.support:appcompat-v7:25.1.0'转载 2017-08-16 10:58:03 · 340 阅读 · 0 评论 -
Android 修改应用中的字体
1下载ttf格式的字体文件2 放入资源目录中3 局部替换4全局替换原创 2017-05-18 15:11:56 · 1123 阅读 · 0 评论 -
程序编写准则与提升
1重视逻辑思维2细节的注意思考3对象非空判断数据非空判断异常捕获原创 2017-05-24 11:55:55 · 322 阅读 · 0 评论 -
利用ViewPager实现画廊Gallery效果
1 需求确认2利用viewpager实现画廊效果viewpager的继承关系使用ViewGroup的setClipChildrenboolean clipChildren方法使用viewpager的setPageTransformer方法实现vp页面切换效果3实战代码首先是父级布局viewpager需要显示的内容实现画廊效果1、 需求确认最近做的一个小学的定制项目,谈需求的时候客户提原创 2017-05-24 14:42:11 · 10699 阅读 · 2 评论 -
Android应用更新详解,兼容7.0
应用更新是我们必须面对的一个问题,这篇文章讲解了Android应用更新,并指出了在Android7.0及更高版本下需要注意的一些问题原创 2017-06-02 15:24:05 · 927 阅读 · 0 评论 -
TabLayout使用详解
1需求2TabLayout相关属性1 继承关系2 和viewpager关联使用3 控件属性4 公共方法3实际使用1 主界面底部菜单栏11 TabLayout中的tab布局文件12 tab中的选择器13 viewpager适配器MyFragmentPagerAdapter14 MainActivtiy中使用2 TabLayout常用导航栏21 TabLayo原创 2017-06-16 11:34:03 · 18626 阅读 · 3 评论 -
设置Android应用全屏显示(隐藏手机状态栏)
1需求2清单文件中的设置3自定义NoTitle_FullScreen4实际使用中的问题偶发5补充1、需求最近做的几个项目都是在pad或TV上的,而且都要求全屏显示(就是不用显示状态栏和ActionBar)2、清单文件中的设置整个应用需要设置NoActionBar,每个Activity还需要设置NoTitle_FullScreen(这个是自己定义的style)3、自定义NoTitle_Full原创 2017-06-30 10:58:15 · 18658 阅读 · 1 评论 -
利用系统相机相册获取单张图片,兼容7.0
场景很多应用都有设置下头像之类的需求,都需要相机相册,但是在6.0的时候加上了运行时权限检测,7.0的时候限制了在应用建共享文件,就是之前相机相册使用的file://URI 不能使用了。因为在7.0及以上的应用中,android框架执行的(严苛模式)StrictMode API 政策禁止在您的应用外部公开file://URI 。如果一项包含文件URI 的intent离开您的应用,则应用出现故障,并报原创 2017-08-04 17:09:17 · 840 阅读 · 0 评论 -
手机淘宝的客户端架构探索之路
主讲人:冯森林(无锋/ Oasis Feng)产品挑战淘宝手机客户端承载并整合多样化的业务生态。 淘宝手机客户端生态是非常多样的,有IM形态的旺信,购物形态的天猫,工具形态的充值,教育形态的淘宝大学等等。在这样的架构中要支持5个以上的BU,十多个部门开发的代码。能够安全、稳定的运行,并且能够保证基本的用户体验,这对底层的架构来说,是个非常严峻的挑战。淘宝内部把客户端的底层架构称之为“航母”,因为转载 2017-08-15 16:33:48 · 7937 阅读 · 0 评论