android前端笔记
文章平均质量分 57
EmmaGuo2015
这个作者很懒,什么都没留下…
展开
-
ImageView添加Drawable的一些问题
最近遇到添加svg不能解析为bitmap的情况,所以打算看一下imageView是怎么做的。原创 2022-10-13 11:59:09 · 1137 阅读 · 0 评论 -
AndroidStudio报错Manifest merger failed : Attribute application@allowBackup
项目很久没打开了,今天打开报错,from一个引入的库。先尝试更新的库,没有改善查询Manifest merger failed : Attribute application 发现应该添加引用这个步骤虽然没解决问题,但给了我一个思路,我接着查询Attribute application@allowBackup确诊了,是这个特性的问题//Manifest中定义报名处添加 xmlns:tools="http://schemas.android.com/tools"//<applicatio原创 2022-03-18 16:52:18 · 2690 阅读 · 0 评论 -
组件分享:任意地图范围组件 InDoorView
调研发现了可以用于显示 商场门店示意图、建筑示意图、照片中物品摆放位置……的库InDoorSurfaceView作者博客引入:compile ‘com.github.karonl:InDoorSurfaceView:1.0’库生产环境:compileSdkVersion 24minSdkVersion 16使用解析1)使用线程导入全局示意图,案例中是一个800kb的jpg文件,使用bitmap引入,设置为rgb_5652)读取预设数据,确定点击位置1、有个数据类:DataJson,其中原创 2022-01-25 17:25:39 · 1687 阅读 · 0 评论 -
Android使用javabean常见的一些问题
解决Android “Parcelable encountered IOException writing serializable object (name =X$x)”需要注意此错误中,如果参数为bitmap不能这样做,因为bitmap实现了Parcelable,所以整个JavaBean都应该实现Parcelable,而非Serializable...原创 2021-12-13 16:48:03 · 1533 阅读 · 0 评论 -
Android path自由的画弧
最近遇到个需求需要画花括号,这个弧度用arc解决不了(arc是正圆的一部分),最后发现贝塞尔曲线可以用。奈何path虽然提供了两组函数,但我的确没用过,一路搜索引擎下来看得有点懵,终于找到一个说明白的博客总结如下:moveTo(100,300) //必要操作设定图形的起点二阶贝塞尔(用两条直线引导一根曲线)quadTo 绝对定位 参数都为确定的xy坐标值quadTo(200f, 200f, 300f, 300f) // 解释说明:从原点(100,300)经由控制点(200,200) 到 结束点原创 2021-05-12 16:55:20 · 1017 阅读 · 0 评论 -
Jetpack Compose-1.3.0 alpha03 导航、手势、动画
上一篇写了基础布局,完后发现一个问题,activity的跳转咋整呢?通过官方文档发现,导航这块让官方也给整了一下和以前不一样了。导航新导航的方式和ios的导航很像。而且比以前其实复杂了。1)引包使用导航要引用的包还挺多dependencies { def nav_version = "2.3.3" // Java language implementation implementation "androidx.navigation:navigation-fragment:$nav_v原创 2021-04-12 16:52:34 · 538 阅读 · 0 评论 -
前端开发对服务器API的一些误区
和后端的同事沟通时,后端同事给搞不清楚postman请求各种花式带参数的我解了解惑前端的请求跟你看到的POSTMAN完全两码事。from-data 里的file这里面传的是“文件”但在body里传的file就是流媒体文件和流媒体的区别在于,前端都是选择了图是一样的,但在后端接收到的不一样FILE需要用files来接,file传的是文件名、文件、文件大小、文件作者等等binary需要转成...原创 2020-04-23 10:31:58 · 220 阅读 · 0 评论 -
时间选择器时间判断的一些想法
业务中遇到了时间选择器的问题:需要判断:1)开始日期<=结束日期2)开始日期与结束日期相隔不大于1个月(不是30天)//timeStar和timeEnd都是Int型数组,用于存放选中的年月日 //使用 calendar对象获取选中的日期,新版本的Date类只剩下long整形的构造函数未过时 calendarStart.set(timeStar[0],timeStar[1],tim...原创 2020-04-15 15:54:39 · 199 阅读 · 0 评论 -
Jetpack Compose-1.3.0 alpha03 基础布局组件
尝试了Jetpack Compose1)下载了示例工程代码,使用as4.0打开始终找不到app,报错:Extension with name ‘android’ does not exist咋办呢?下载官方编译器:Canary buildGet the leading-edge features in a lightly tested build.DOWNLOAD ARCTIC FOX (2020.3.1) CANARY 92)...原创 2021-03-11 16:28:18 · 1312 阅读 · 0 评论 -
View高度动画
有一个需求给View的高度做动画,参考了一个人的帖子,在实际使用中测试出了同源的另一个方法原方法的核心是rView.getLayoutParams().height = heightrView.requestLayout()我测试的方法是layoutParams.height = height;rView.setLayoutParams(layoutParams);rView.setBottom(rView.getTop() + height); //必须设置,否则getBottom还是原来原创 2020-07-28 13:48:23 · 252 阅读 · 0 评论 -
AppLayout的滑动依赖方案
最近一个需求是applayout的两段式下拉,第一次拉出title部分,第二次拉出附属部分,同时下面的scrollView跟随移动网上最多的是appLayout(仅含有toolbar)+Scroll组件的模式,鲜少有第三者插足。appLayout的公开方法里不能设置展示高度,从而满足需求,因此最先想到的是自定义,结果因为用的是androidx,在学习大神们自定义applayout的过程中发现,不光applayout及其相关组件要照搬,coordinate这个父组件也要照搬,而且搬的过程中出了岔子,导致搬原创 2020-07-27 16:51:29 · 541 阅读 · 0 评论 -
Android广播的注册和注销
会有这种疑惑自然是因为Android生命周期,虽然写的明白,但实际运行中会发现,onDestory有时候会不执行。对,如果直接在当前activity按下home键,然后从后台销毁,他就不执行了。琢磨了一下,参考文章,觉得应该修改位置,比如放在一定会执行的onresume和onPause,或者大家也说悬的onstop然而我看了稳定的蓝牙的官方代码,广播注册和取消是放在oncreat和ondestory中,人家这样为什么可以呢?我想原因如下:1来,蓝牙具有后台运行的需求,广播需要一直在...原创 2020-07-06 16:40:09 · 1042 阅读 · 0 评论 -
Android 解析jwt遇到java.lang.IllegalArgumentException: bad base-64
解析jwt的时候遇到了java.lang.IllegalArgumentException: bad base-64百思不得其解按照网上说的:Android&ios java这俩咋就不好使呢?后来我看了篇帖子说android开发中的bad base-64错误在涉及到服务器的软件中,由于使用android的Base64解码功能,而服务器端加密为了防止URL格式问题,会采用Apache的URLSafeEncode等方式进行数据安全加密,android端使用Base64.decode(sr原创 2020-07-01 17:05:31 · 8476 阅读 · 0 评论 -
定时方案更换为ScheduledExecutorService
参考资料定时方案一直使用Timer,因为调用的不频繁,对时间把控也没有那么绝对的严格,所以也没发现问题。说一下需求:以10s为一个周期,每隔1s钟检查一下服务器是否回复,10s钟时仍没有回复,则进入额外20s的超时判断,第30s上仍没回复则提示超时。使用Timer时,以10s为单位启停一次,实际上是0延迟1秒为周期,用全局变量做计数器去统计10s,结果整个周期最大的时候竟然出现了2s的误差,这是不能接受的。于是考虑使用JDK5的多线程包ScheduledExecutorService网上的资料多原创 2020-07-01 13:37:01 · 337 阅读 · 0 评论 -
迁移至ViewPager2
新项目中使用了组件ViewPager2,因为这个版本内部使用recyclerView实现,解决了缓存问题,于是用法上与ViewPager相比多了一点。由于4月份更新的api所以使用上与网上19年的文章不一致,导致我懵逼了很久,最后又去看文档,版本androidx.viewpager2:viewpager2:1.0.0正式版,4月份出了这个版本的alpha01先说用法:总体来说有三种1)页面区别不大可以复用,内容值不一样=》使用recyclerView//ViewHolder需要继承RecycleVi原创 2020-06-24 17:16:06 · 463 阅读 · 0 评论 -
Gson解析泛型的一个小问题
对于gson我们很熟悉了常用的复杂对象的gson解析方式:Type listType = new TypeToken<ArrayList> () {}.getType();但这一次我需要实现对Type listType = new TypeToken<ArrayList> () {}.getType();的解析,当我传入泛型T=Port IP时,返回结果并非我预期的ArrayList,而是ArrayList,为啥呢?一开始我怀疑时kotlin泛型的问题,用java写了一遍原创 2020-06-10 14:29:09 · 403 阅读 · 0 评论 -
图片组件库选型
2018年开始使用知乎的图片库Matisse 0.5.2 bate4版本,出现了Android10手机崩溃的情况,Android9上并无此现象,安装腾讯bugly发现问题Caused by java.lang.IllegalArgumentException: Invalid column COUNT(*) AS countat android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:170)at androi原创 2020-05-18 11:32:08 · 1379 阅读 · 0 评论 -
NetworkInfo已过时
今天编译的时候发现网络请求前,用于判断是否通畅的函数提示警告,内容为NetworkInfo过时赶紧点开查看过时说明,发现API level 29该类过时,ConnectivityManager中返回值为NetworkInfo的方法一并不推荐使用了。@deprecated Callers should instead use the {@link ConnectivityManager.Netw...原创 2020-04-16 15:50:43 · 6511 阅读 · 1 评论 -
Android原生开关组件
Android原生Switch众所周知,Android原生提供了两种开关组件,toggleButton和Switch,这两个因为仿苹果的原因我很少使用。真正用到项目里大概也就两次,体验并不好,最近被UI说就用你们Android原生的就可以了,给我贴了个图,我心说这哪好看去,结果意外查到了一篇帖子,说如何定制成仿照苹果的样子。使用了一下效果不错,但问题来了,我一直不愿意使用这两个,主要原因还是宽...原创 2020-04-03 14:38:09 · 822 阅读 · 0 评论 -
第三方插件Xpopup
这款第三方插件在github上相当有名,尤其是支持androidx之后,1.8版本之后整体都很稳定,能满足开发需求,但是因为自带的几个弹框都很丑,很长时间以来用的都是自定义,感觉比较繁琐而且没有必要,最近有时间拆解看看如何复用本来就提供的那些pop库组件修改1)Loading:LoadingPopupView getImplLayoutId使用layout为R.layout._xpop...原创 2020-02-26 16:46:23 · 6478 阅读 · 4 评论 -
拆解Gradle第二弹SourceSet
参考资料:带你认识SourceSet SourceSet是做什么的?SourceSets被称作源代码集合,一般可以用它来指定资源的路径(项目下src),是Java插件用来描述和管理源代码及资源的一个抽象概念,是一个Java源代码文件和资源文件的集合,我们可以通过sourceSets更改源集的Java目录或者资源目录等。写在前面:gradle中有两个sourceSet,一个是android.s...原创 2019-11-15 12:32:05 · 544 阅读 · 0 评论 -
从配置Product Flavor拆解Gradle
从配置Product Flavor拆解Gradle什么情况下我们使用Product Flavorapp需要打包到不同渠道平台(包名不同)1、如何划分渠道?仅划分渠道根据不同渠道显示不一样的内容什么情况下我们使用Product Flavorapp需要打包到不同渠道平台(包名不同)这种情况下不管对不对app内容做修改,我们都需要使用Product Flavor,确保你一台手机能上能安装多个渠道的...原创 2019-11-14 16:50:32 · 216 阅读 · 0 评论 -
自定义View的一些问题
最近在实现一个拖拽添加View并拖动删除的组件,分成两个部分(尚未完成的)和SlideBlock,代码在我的github上,需要自取在这个过程中,我总结了一下自定View的一些问题,分为两个部分阐述:第一部分:绘制 SlideBlock继承自LinearLayout 1、构造器//继承自LinearLayout之后需要构造函数,一般两个就够用了public SlideBlock(...原创 2018-05-24 10:21:52 · 519 阅读 · 0 评论 -
【前端笔记_android】android studio的调试总结
最近写了一段后端,用idea相当上瘾,加上原来的eclipse横行霸道svn经常更新无能,于是和上司申请新项目开始使用androidStudio。然而好事总是多磨,从eclipse迁徙过来会有诸多用不惯的问题,做一个总结。1.debug快捷键alt+f8 debug时选中查看值f8相当于eclipse的f6跳到下一步shift+f8相当于eclipse的f8跳到下一个断点,也相当于eclips...原创 2018-04-11 14:24:58 · 449 阅读 · 0 评论 -
Android 布局
时至今日google的sdk已经能更多的简化前端人员的工作量了,我们从拿到设计图用LinearLayout直接做比例堆叠保证页面的适配性,已经过渡到拿到设计图先看看用什么Layout能简化层级。 google提供的用于Window的Layout有很多,我挑几种常用的做一下介绍和选型 1)单组件显示 FrameLayout 这个特别适合做照片预览,装Fragment,装WebView,Scro原创 2017-11-24 09:38:04 · 216 阅读 · 0 评论 -
android开发中的一些总结
1.Intent传值 putExtra设置值,通过getIntent().getIntExtra取值,getIntent().getStringExtra(“str1”), // 调用该对象的getStringExtra()方法来获得使用putExtra()方法设置的字符串值 getIntent().getIntExtra(“age1”, 0) //对于整数值,调用getIntExtra(...原创 2018-05-24 16:03:20 · 574 阅读 · 0 评论 -
对Bigkoo/Android-PickerView 时间选择器的修改
最近的项目里要用到时间选择器,找了许久看到了比较成熟稳定的Bigkoo/Android-PickerView,拿来用了一下:TimePickerView pvTime = new TimePickerBuilder(this, new OnTimeSelectListener() { @Override public void onTimeSele...原创 2019-01-14 15:31:07 · 1841 阅读 · 0 评论 -
android Material Desgin动效——SVG动画
参考博客:蓝色的天空ywj 简书一个成功的AnimatedVectorDrawable由三部分组成:animator/anim_rotat;drawable/anim_vector;drawable/vectordrawable/vector:定义动画初始的样子,可缺省animator/anim_rotat:定义动画(可有多个)drawable/anim_vector:管理animator...原创 2019-01-30 15:50:26 · 383 阅读 · 0 评论 -
android网络组件的对比
volley 作为谷歌亲儿子,是如何一步步失宠的?一开始同组的同事用 引用很简单 compile ‘com.mcxiaoke.volley:library:1.0.19’ 或者直接复制粘贴lib库 然后就可以用StringRequest、JsonObjectRequest或者JsonArrayRequest来发送请求。 然后网上比较好的封装思路是: 发送get请求 发送post请...原创 2019-01-30 15:56:00 · 205 阅读 · 0 评论 -
DialogFragment的一些问题
dialogFragment投入使用有几个月了,今天因为功能的原因需要设置dismiss监听,在onCreateDialog中给dialog设置的监听,结果运行时监听不到?经过打log发现dismiss的时候没有走dismiss和dialog的DialogInterface.OnDismissListener,而是直接走了onDestroy?@Override public void ...原创 2019-03-06 15:51:30 · 848 阅读 · 0 评论 -
android中的svg
重写以前的星星组件,然后用了svg,找到一片蛮有意思的总结贴说了三个问题: 1、使用 svg是从5.0才开始支持,所以最多支持到4.0 1、你的Activity必需继承自AppCompatActivity。 2、在你需要使用SVG图的地方(也就是ImageView需要这样)用app:srcCompat代替android:src 3、SVG图的兼容性 由于SVG图是Android5.0推...原创 2018-05-25 16:55:41 · 215 阅读 · 0 评论 -
高德地图对接
1、对接 1)初始化 MapView mapView = (MapView) findViewById(R.id.map2); mapView.onCreate(savedInstanceState); aMap = mapView.getMap(); 2)移动位置aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng));...原创 2018-05-14 16:07:11 · 1252 阅读 · 0 评论 -
DataBinding使用总结-基础篇(配置及基本使用)
新项目开发周期长,正好使用kotlin并且试水mvvm,按照网上的方法集成DataBinding,后就开始各种狗带。1.集成网上比较普遍的说法:首先要增加classpath "com.android.databinding:dataBinder:1.0-rc1"并增加apply plugin: 'com.android.databinding' 几乎能找到的文章都是这一个套路,然而我运行就出错这...原创 2018-01-04 11:35:15 · 2097 阅读 · 0 评论 -
存储之SharedPreferences
SharedPreferences是一种文件存储方式,适合小数据量,简单寄存,多用于存配置和用户登陆信息。 不适合多对象信息存储,多对象适合用json和数据库。简单来说SharedPreferences操作简单,需要说的只有两点: 1、获取context 调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序...原创 2018-02-27 17:27:04 · 382 阅读 · 0 评论 -
ActionBar使用中的一些问题
最近开始用ActionBar,在适配的过程中找了很多资料,结果仍有问题。 关于很简单标题、副标题以及返回键就不在这里叙说,百度一下你就知道。说一下我的版本,使用了v7包,Activity继承自AppCompatActivity 1.ActionBar获取为null 出现这个问题是因为在AppCompatActivity中的actionBar已经改名字叫supportActionBar了,原创 2018-02-06 15:03:18 · 280 阅读 · 0 评论 -
ToolBar的使用
在上一篇ActionBar使用中的一些问题中,阐述了ActionBar使用中的一些问题,然后这一篇里,我尝试了ToolBar1、引入 1)根style要引用NoActionBar的Theme,或者在style中重写 < item name=”windowActionBar” > false < / item> 2)在layout中写一个toolbar的布局 ...原创 2018-02-09 14:56:10 · 246 阅读 · 0 评论 -
DataBinding的使用总结-进阶篇(recyclerView)
基础篇项目代码:放在前面以防有人看不到 https://github.com/summerhotready/KotlinCol/tree/bindingOrigin基础篇讲述的是如何配置和使用db,并提供了稳定版本的参数,下面我们聊一聊使用最普遍的recyclerView是如何使用DB的我们使用RV一般有两种情况,单布局和多布局,单布局简单明晰,就易用性来说比不上ListView,但倘若要做上原创 2018-01-08 16:47:17 · 3878 阅读 · 0 评论 -
android代码迁移要注意的问题
新写了一个kotlin测试项目,扔到github,试了试多人协作,要点还是创建项目的时候要勾选readme文件,不然会有无穷无尽的麻烦,别问我发生了什么。而勾选创建之后,在网页端新建branch和在客户端提交本地分支也都可以正常进行。因为公司电脑用的sourceTree,设置忽略文件的时候遇到了些麻烦,因为打算每个branch下面是一个单独的工程文件,忽略文件会有多个,由于我用的这个版本的原创 2018-01-03 11:42:41 · 258 阅读 · 0 评论 -
知识梳理-UI-框架类们
1.五种常用的Layout布局LinearLayout 顺序布局优势:可根据weight进行比例布局,劣势:不能激动灵活的将组件放到恰当的位置上总结,LinearLayout适合搭框架和根据比例描画,能很好的适配各种尺寸的屏幕,不擅长摆放内部组件,但是如果将其放入ScrollorView当中,由于外层父容器的不定长度使用weight做比例布局的优势完全丧失。Rela原创 2016-03-25 15:56:41 · 988 阅读 · 0 评论 -
Dialog使用中需要注意的一些问题
到了新公司,开始写新的项目,自定义Dialog的时候发生一些问题1.dialog设置样式为全屏时状态栏颜色发生改变,为灰白色解决方案:取消全屏,算出想显示的位置设置显示 Window dialogWindow = loadingDialog.getWindow(); WindowManager.LayoutParams lp = dialogWin原创 2017-03-16 15:48:36 · 1052 阅读 · 0 评论