- 博客(43)
- 收藏
- 关注
原创 Adroid:Room数据库基础使用以及新增表,不增加版本号以及Migration的方法
Room基础使用,以及数据库升级,新增表数据库不升级等
2022-10-11 11:11:48
3079
原创 Android Q:文件上传(之前的文章有点问题)
前沿:之前写过两篇文章Android:IOException read fail:EBADF (Bad file descriptor) 和Android Q:上传图片java.io.FileNotFoundException: open failed: EACCES (Permission denied)用是可以用,但是隐含了个问题。而现在大部分博客提供的方法是把存储中的文件复制一份到内存中,再用传统的File file = new File(path)操作上传,也是可以的,但是中间多出了两步:复...
2021-02-25 18:06:03
763
原创 Android:java.lang.IllegalStateException: Cannot obtain size for recycled Bitmap
全部错误应该是:java.lang.RuntimeException: Unable to destroy activity: java.lang.IllegalStateException: Cannot obtain size for recycled Bitmap: android.graphics.Bitmap@f04cfcd[42x42] ARGB_8888其实这个错误就是bitmap没有回收,主要记录一下:在使用第三方地图的时候,生成地图上的点,都需要一个bitmap,比如说高德地图..
2021-01-27 17:47:22
2115
原创 Android:解决ViewPager和(RecyclerView、HorizontalScrollView)内部横向滚动控件的触摸滑动冲突
在这之前,先看看这个问题有几种解决办法:理解这篇文章的前提,是需要对触摸事件分发有一点小小的了解,这个方法有点取巧
2021-01-20 17:19:37
3350
4
原创 Android:通过ValueAnimator动画改变控件长宽失效的问题解决
这个问题比较好玩,首先放上动画改变控件长宽的方法,比较简单,因为得通过LayoutParams设置宽高,所有说不能使用ObjectAnimator。 private void animOut() { ValueAnimator animator = ValueAnimator.ofInt(0, ScreenUtil.dip2px(25)); animator.addUpdateListener(new ValueAnimator.AnimatorUpdateLis
2021-01-18 17:06:47
2688
4
原创 android:拦截超链接,重定向问题,以及重定向后的返回问题。
在用手机浏览web页面的时候,假如有对应的H5,会自动转到H5页面。这是网页在识别了为移动端时进行了重定向。比如台风路径网:http://typhoon.zjwater.gov.cn/default.aspx在使用移动端浏览时,会自动转为http://typhoon.zjwater.gov.cn/wap.htm使之浏览体验更好。假如只是简单地使用webView加载url是没有什么影响的,内部会自己处理。但是假如,你为了实现在H5点击某些超链接,进行跳转的话,你需要拦截超链接:mW...
2021-01-08 19:03:37
2659
1
原创 Android:SwipeRefreshLayout+RecyclerView+BaseQuickAdapter SwipeRefreshLayout无法拉出来
我的使用场景是这样的: 布局文件:<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/refresh_layout" android:layout_width="match_parent" android:layout_height="match_parent" ...
2021-01-07 21:32:58
343
原创 Android:IOException read fail:EBADF (Bad file descriptor)
写这篇博客主要想记录一下这个问题,我觉得大家应该都不会碰到。在我之前的一篇文章Android Q:上传图片java.io.FileNotFoundException: open failed: EACCES (Permission denied)中有说到,新安卓版本下,使用公共文件资源不能够File file = new File(path)了,需要使用FD,也就是FileDescriptor。现在,我这边碰到了一个非常非常奇葩的问题,就如标题所示:IOException read fail:EB.
2020-12-07 15:37:08
6687
6
原创 Android:使用MVVM框架,多fragment都依赖一个底层activity或者fragment出现的问题
这个问题的碰到是ViewModel实现了LifecycleObserver接口,并且在fragment或者activity中getLifecycle().addObserver(你的viewModel) 碰到的,假如你子fragment实现的ViewModel是依赖于父activity或者父fragment,在ViewModel的LifecycleObserver实现中调用方法,会多次触发。比如:在onCreate中使用EventBus.getDefault.register(this)就是报错,说重复注册
2020-12-05 14:47:49
857
原创 Android:触摸移动的悬浮窗口
代码比较简单。不会有详细的讲解,这个功能我之前是用来做实时音视频小窗口悬浮的,所以说最外层是FrameLayout,可以根据自己的需求变成图片,或者功能界面,都可以的。准备工作:AndroidManifest添加权限<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" /><uses-permission android:name="android.permission.SYSTE.
2020-09-09 14:44:32
1837
原创 Android:LiveData postValue导致数据丢失问题,及其原因
关于这个问题,网上很多,有一篇文章还详细列举了几种情况,写的非常直观:https://www.jianshu.com/p/aa24dd9123a1我碰到的实际情况是:使用阿里RTC实时音视频服务,我把音视频操作和回调都写在了ViewModel中,在同一房间内,已经有人的情况下,在自己加入房间时,会触发阿里SDK事件通知回调onRemoteUserOnLineNotify,告诉我当前房间存在的人,然后我通过LiveData.postValue通知到UI有人加入,我在recyclerView的adapt
2020-08-10 14:50:50
8802
1
原创 Android:DataBinding 设置背景后 文字消失
Button才会这样,改成TextView后好了,感觉这是DataBinding的bug,我尝试了各种方法,文字都是消失的
2020-07-29 03:09:19
471
5
原创 Android:WindowManager.addView Unable to add window -- token null is not valid;
在使用WindowManager.addView时报错:android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?这个问题和适配8.0有关,需要把WindowManager.LayoutParams的type设置为WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY..
2020-07-14 15:11:25
1533
1
原创 Android:MVP架构的简单使用
分享一个简单的MVP架构,适合初学者,这个MVP框架,没有那么严格。前两年刚开始步入工作的阶段看到了他们代码架构,就学会了,比较明了。不过这个框架有个缺点model是没有的,或者不够明显,直接在Presenter中使用网络框架获取数据,我会稍微修改一下这个框架,不过在代码上就不够结构化,有需要的小伙伴自己优化一下。想通过MVP的思想,从而引出后面的MVVM,也算对自己所学,整理一下。这些都是属于自己的理解,有错误的地方欢迎指正。谷歌官方也有发布一套MVP架构Demo,也可以使用它的,更加的严谨。概念:M
2020-07-06 16:39:49
432
原创 Android Q:调用系统相机拍照,并且获取图片
获取图片后上传可以看我这篇文章,封装好了后,只需要一个uri就行了https://blog.csdn.net/qq_27454233/article/details/106661130先说明AndroidQ以前的系统拍照:先选择文件夹,看文件夹是否建立,建立文件夹,拿到文件路径,然后命名照片名称,通过文件路径和拍照名称:File file = new File(path);再根据Android7.0来生成Uri:public static Uri getUriForFile(Cont
2020-06-10 18:08:32
1424
原创 Android:giraffeplayer2 ConnectException:Failed to connect to raw.githubusercontent.com/0.0.0.0:443
使用giraffeplayer2 播放网络视频,出现了:com.github.kevinsawicki.http.HttpRequest$HttpRequestException: java.net.ConnectException: Failed to connect to raw.githubusercontent.com/0.0.0.0:443这个在第一次播放的时候,会去github上下载对应cpu架构的包,出现这个,应该是连不上库了,所以手动在build.gradle上添加架构库://
2020-06-10 14:57:58
795
原创 Android Q:上传图片java.io.FileNotFoundException: open failed: EACCES (Permission denied)
从相册选择图片上传,框架使用的是Rx + Retrofit + OKHttp。因为此版本使用了MVVM架构,targetSdkVersion升到了29。在上传图片出现了报错java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IMG20200608195140.jpg: open failed: EACCES (Permission denied)原因是在android10开始,Google修改了文件相关权限,对于写入和读取文件
2020-06-10 11:45:17
4517
原创 Android:dataBinding无法直接使用中文字符的值
<TextView android:id="@+id/text4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="20dp" android:textColor="@color/black_33" android:.
2020-06-05 09:27:42
510
原创 Android:Caused by: java.lang.NoClassDefFoundError: com/android/builder/Version
嗯,老项目,升级classpath,升级gradle版本,出现了这个问题。我解决这个问题的办法,就是去注释掉,classpath引入的,以及app下的build.gradle引入的插件,因为它是秒出的,没有到下载依赖包部分,所以可以排除文件冲突之类的。经过我注释,发现是walle渠道打包引入的apply plugin: 'walle'它引入了一个classpath以及一个依...
2020-03-26 17:18:06
1898
原创 Android:Unable to resolve dependency for ':app@armv7Debug/compileClasspath': Could not download xxxx
在你试过所有网上的办法,比如设置代理,关闭或者打开offline work(在3.6.1的设置中找不到的话,可以把网络断开,会在底部控制台出现可以点击的设置项)这些都无效的时候。不妨把这个依赖包的版本号升高或者降低,假如版本号是last的,就找一个比当前低的版本,然后sync now。我就是台式机死活下载不下来高德地图的6.9.2版本,但是笔记本可以,将build.gradle的高德地图版本号...
2020-03-23 11:02:24
316
原创 Android:提供一个可以设置下划线离底部的距离和宽度的TabLayout控件
标题本来是设置下划线高度的,但是感觉有歧义,额,高度设置的话,在layout xml文件里tabIndicatorHeight=“xdp”就行了,本文后面讲的是设置该下划线距离底部的高度。为什么会有这种奇怪的需求呢?因为设计稿就是那样的,附上成品截图:----------------------先啰嗦一下,不太会写博客----------------------现在网上主流的设置...
2020-03-18 16:39:42
2658
原创 Android:Unable to determine application id: com.android.tools.idea.run.ApkProvisionException
Android Studio 从3.0升级到3.6+之后,安装软件在下方run的调试台出现Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: No outputs for the main artifact of variant: debug。点击上方run的绿色箭头按钮...
2020-03-04 11:50:40
4936
原创 Android:RecyclerView内嵌套RecyclerView导致外层item点击不响应
我是用BaseRecyclerViewAdapterHelper时,recyclerView嵌套一个显示图片的recyclerView,外层recyclerView需要响应item的点击进行跳转,在嵌套的RecyclerView中点击无效。没用原生的Adapter写过,不知道会不会响应。首先,需要知道触摸事件的响应机制是怎么样的:由上至下,最下层不消费后,则由下至上;然后需要了解一下这三个方法...
2020-01-04 16:22:35
4014
原创 微星GS65 英雄联盟崩溃
从十二月二十几号之后,英雄联盟一进图就崩溃一进图就崩溃,卸载nahimic后解决,进设置里应用界面可以找到它。二十几号的时候,它好像更新了,然后就不兼容了,很气...
2019-12-26 23:45:02
963
原创 android:H5上arcgis 地图无法拖动,手势失效
项目要从钉钉上H5照着开发一个App,偷懒加上arcgis资料比较少,两个arcgis地图显示直接把H5挪了过来。在android的webView中,点击和双击是正常的,但是拖动和放大缩小手势没有用。换了个腾讯内核后恢复正常。附上腾讯浏览器内核网站:https://x5.tencent.com/tbs/guide/sdkInit.html接入就下载jar文件,然后在你的Applic...
2019-11-01 11:45:41
3008
4
原创 android:activity过渡动画 finish 关闭activity 无效
这边就不介绍过渡动画了,先上我的过渡动画代码,我写的是进入的时候从下往上,退出的时候从上往下的动画。transition文件夹两个:bottom_ani.xml 退出动画<?xml version="1.0" encoding="utf-8"?><slide xmlns:android="http://schemas.android.com/apk/res/and...
2019-10-11 15:06:38
2666
原创 android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException
这是Android8.0以上调用服务 startForegroundService 而出现的问题,网上的通用解决方法就是设置通道id,而我已经设置了通道id了,这个崩溃是在我想把通知取消掉,调用了: NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERV...
2019-10-09 16:57:04
935
1
原创 Gradle sync failed: Could not find com.android.tools.build:gradle:xxx
此博客可能适用于本来能正常编译的老项目,一段时间后无法编译通过,并提示这个错误。假如是新建项目碰到的,可能的确是build.gradle里classpath没写好版本。今天打车还迟到了,很自闭,然后打开android studio。项目自动编译,突然爆了个大红色,更自闭了。以下是错误流程:说实话,有点懵,我第一反应是不是Android Studio把我安卓编译版本升级了,我的项目下的b...
2019-08-12 16:58:08
1963
原创 android.view.InflateException: Binary XML file line #0: Binary XML file line
这个问题,网上还是比较常见的,能搜到的,一般是引用错误造成的,比如相同名称的LinearLayout ListView,我比较碰到这个错误,是写分割线的时候<View ...../>写成了小写的<view..../>,这些都很好改接下来这个就比较模糊了,一样是报这个错误,但是包名,类名都写对了,我碰到的是天地图控件。是因为权限没赋予,可能它内部有用到Sd卡的读取写...
2019-06-10 14:35:38
1236
原创 android:activity销毁后,fragment使用控件,空指针
fragment和activity绑定,activity退出,然后fragment的接口数据获取到了,使用控件属性,崩溃,按照正常来说,是不会空指针的,报的错是:java.lang.NullPointerException: Attempt to invoke virtual method ...........我的原意是使用了ButterKnife,他在unbind的时候会把控件属性置空,...
2019-04-29 17:33:58
1483
原创 android:自定义圆环形百分比控件,代码简单,加载动画,代码详细说明
需求要写一个环形百分比,是这样的: 第一张是UI图,第二张做出来后,在layout上渲染出来的图。首先,需要知道android的坐标系是怎么样的,左上为(0,0)往右x轴增大,往下y轴增大然后就直接上代码啦,变量不多,都有注释,也没有弄AttributeSet,想弄layout设置参数的,可以自己加一下,style文件写好配置,layout文件里设置,然后自定义控件里获取。...
2019-04-17 10:26:53
1023
原创 android:bug Fragment not attached to Activity ,fragment not attached to a context.
网上说是activity重建的时候,假如fragment还在使用诸如context,就会出现这个问题,比如说突然横屏,fragment里面正在访问网络接口,使用了 new ProgressDialog(context, R.style.waitting_dialog);来进行等待,就会崩溃,Fragment not attached to a context。可以在fragment内部,使用is...
2019-03-01 09:59:13
8401
原创 SurfaceView作为底层,控件平移后,被遮挡的解决办法
最近在做视频录像的一个小功能,功能不多,就录像,保存,取消。界面类似微信那样。界面是这样的,额,因为UI没给我图,右上角是切换摄像头,指纹那里是长按录像。松开录制结束,会出现两个按钮,位置和录像按钮一样,然后动画平移至两边,再把录像隐藏 在界面上就类似这种效果,动画也比较简单。上界面代码,代码都比较简单,可以跳过<?xml version="1.0" en...
2019-01-30 14:25:53
4644
4
原创 Android:时间轴动态记录安排事情,24小时制,按照时间先后排序
做出来的效果是类似这样子,长截屏不知道为啥只到20点就滚不下去了,内容显示就简单的弄了一个TextView,需要自定义的,可以替换一下,比如封装一个插好控件的RelativeLayout,生成的时候new一个插入数据就行,显示控件的长高度,和时间长度有关,1个小时就会填满一个小时的位置,20分钟就是1/3,40分钟就是2/3,以此类推,显示位置和开始时间有关,总长度从0点到24小时。最...
2018-12-05 14:46:15
1989
原创 Gson解析String,com.google.gson.stream.MalformedJsonException
在一个项目中,采用的是OkHttp+Retrofit+Rx写的,数据解析用的是Gson,最外层泛型/** * Created by Zhu on 2018/8/9. * 返回的网络数据外层 */public class ObjResponse<Result> { public int rc; public String msg; public R...
2018-12-05 11:16:57
731
原创 设置显示软键盘第一次不起作用,第二次点击才行
在写一个指纹识别功能的时候,需要几次识别失败后,显示输入密码的EditText并且弹出键盘,弹出键盘是:final InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);//下面的写在oclick里if (imm != null) { ...
2018-12-04 15:48:38
866
原创 All children of ConstraintLayout must have ids to use ConstraintSet
使用ConstraintSet时,所有ConstraintLayout内的控件都必须有ID,记住,是所有的,动态生成ConstraintLayout子View的时候,出现了这个错误,一开始给动态添加的View设置ID:view,setId,还是报了这个错误,使用了ConstraintSet.clone(ConstraintLayout constraintLayout)。打开Constra...
2018-11-16 18:33:19
6109
原创 上架App失败:未找到info记录,无法更新
在帮公司上架新App的时候,百度平台,在创建了应用后,填写各种资料,上传应用截图,上传APK,点击提交的时候,懵逼了,出现弹窗:未找到info记录,无法更新。我检查了下,必填的我都填了,不该填的我也填了,但是还是无法上传。 第一个想法,是不是版本不是1.0.0 versionCode不是1的缘故,改了后,还是一样的结果。 第二:关闭提交应用信息界面,这...
2018-11-02 16:33:46
5168
原创 Android:自定义CoordinatorLayout.behavior 简单的仿UC首页
CoordinatorLayout顾名思义协调布局,是用来协调该布局下的子控件,最简单地使用就是头部伸缩和折叠了,配合着TabLayout,只需要设置一下AppBarLayout子控件的layout_scrollFlags以及底下滑动控件的layout_behavior就行了,组合起来效果非常不错,网上这种详细的教程有很多,这片文章主要讲述一下简单的自定义behavior。 ...
2018-09-21 14:42:50
2016
1
原创 Android微信分享时好时坏
发现公司短的文章可以分享出去,长的文章就失败了,分析是字数问题,之前的代码是直接拿了一个文章详情实例,body里面是文章体,把字数减少一些就可以分享出去了:if (mDetail.body.length() > 100) { mDetail.body = mDetail.body.substring(0, 100);}记录一下...
2018-07-10 14:56:05
524
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人