- 博客(54)
- 资源 (1)
- 收藏
- 关注

原创 Android api升级到31 导致的兼容性问题
1.问题描述:android api升级到31的时候会引发很多兼容性问题,今天主要记录其中一个问题,Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some
2022-04-19 15:14:27
11241

原创 FaceBook第三方登录获取姓名,头像,邮箱等个人信息
最近项目新增一个需求:需要收集用户的邮箱信息。但是直接通过GraphRequest.newMeRequest去获取发现返回值为空,通过查阅资料得知facebook获取用户邮箱还需要授权。授权方式如下 LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile,email"));获取姓名邮箱信息监听事件如下 GraphRequest request = GraphRequest.ne
2020-12-30 19:42:19
11069
12
原创 java反射和泛型具体用法
/ 通过方法名和参数类型获取Method对象,其中String.class为方法返回值类型,没有返回值可以不写。//将A实体类相同字段的值赋值给B实体类,使用反射不再需要手动调用每个字段的set方法。//通过传入泛型T,执行统一逻辑,限制T的类型为RealmModel类型。// 使用Class.forName加载类。// 调用方法,传入实例和参数。//根据泛型类和json数据生成泛型类的集合。//通过反射根据一定规则替换实体类个别字段的值。三、反射场景二:动态调用类方法。二、反射场景一:动态赋值。
2024-05-22 14:47:47
392
原创 离线安装腾讯x5内核(附安装包下载地址)
背景:由于项目需要在一个定制android设备上播放RTSP流视频,设备自带的浏览器内核不支持RTSP流播放,这就导致我使用webview播放h5网址上的视频的时候,无法正常播放视频。在android手机上都是可以播放的,所以猜测是定制android设备自带的浏览器内核兼容性比较差。7.加载成功之后在页面直接使用sdk提供的webview就可以使用x5内核加载h5网页了。官网文档,发现流程写的并不清晰,而且没有提供离线安装包,所以这里做个整理。由于设备没有联外网的,所以只能通过离线安装的方式。
2024-02-21 18:11:02
3201
原创 如何使用sqlite将db文件转成txt文件
3. 打开cmd,在上述文件夹下输入命令,回车后会将.db文件转换为可以直接阅读并修改的.txt文件。其中database-file.db为需要修改的文件名,database-file.txt为转换后的txt文件。不想安装额外的软件查看修改.db数据,可以尝试以下方法,适合数据量较小的情况。6. 可将新生成的.db文件直接移动到指定文件夹。2.将所需要修改的.db文件复制到该文件夹中。5. 将修改后的.txt数据再转换为.db数据。4. 直接在生成的txt中修改数据。
2023-08-17 16:32:01
3255
原创 Flutter实现webview展示网页
项目开发中可以把页面标题和url通过路由框架从外面传过来,这个页面就可以作为通用的webview使用,这里为了好理解使用了固定的标题和url。这里第三方库的版本要自己判断一下,不同版本的api有一些变化,这里以2.0.8的版本为例。2.新建一个widget用作webview页面。
2023-03-07 11:10:14
1549
原创 使用java批量处理文件
使用java单元测试,执行这个文件的main方法,就可以对文件进行内容修改逻辑。不同的逻辑可以根据具体情况自己来编辑。
2023-01-29 17:50:57
1077
原创 Android实现富文本展示
我们在开发的过程中可能会遇到这种一行文字有不通颜色的情况,如果用多个TextView去实现会让布局显得繁琐而且不利于扩展,那么我们可以使用android提供的SpannableString功能来实现我们的需求。下面我们就用一个TextView实现上述效果,并可以监《听注册协议》和《隐私政策》的点击事件。
2022-11-04 17:04:53
1997
原创 java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
最近在做一个统计网络耗时的功能,在运行一个网络请求项目的时候发起网络请求提示CertPathValidatorException异常,查询了一下,大多解决方案是说忽略证书信任或者是说重新安装服务器端证书,验证之后发现要么没有效果要么不是android层面的操作。最后推测原因是测试手机使用了代理工具,关闭代理之后果然可以进行正常请求了。
2022-09-13 11:52:05
6096
1
原创 StompProtocolAndroid 使用方法
STOMP是一个简单的可互操作的协议, 被用于通过中间服务器在客户端之间进行异步消息传递。它定义了一种在客户端与服务端进行消息传递的文本格式.
2022-08-03 14:45:20
1162
原创 Android性能优化之启动优化
我们一般项目常规的初始化都是通过同步线程逐个执行,或者个别耗时的开启一个子线程去执行,先不说效率会比较拖沓,在application的代码整洁度上面也不够美观,特别是任务比较多的时候,一个类会显得比较臃肿,引入这个库就可以解决这些问题,让任务变得清晰并且执行效率高。............
2022-08-01 13:54:53
263
原创 Could not determine the dependencies of task ‘:app:countDebugDexMethods‘
新版android studio运行老项目,报错Could not determine the dependencies of task ':XXX',解决思路。
2022-06-29 17:34:06
1604
原创 Kotlin高阶函数实现事件监听
一般自定义view里面的点击事件都是放在外部去处理,我们常规java里面的实现方式都是创建一个接口Listener,然后通过这个接口将监听事件传递出去。示例代码:```public void init() { textView.setOnClickListener(view -> { listener.onClick(view); });}public interface Listener { void onClick(View view);
2021-09-28 12:08:39
948
原创 Mac. Android studio. 常用快捷键
fn+option+F7. —— 查看文件调用位置Ctro+option+O. —— 移除无效引入文件fn+command+f12 —— 查看当前类的方法Control + H ———查看类的继承关系Android Studio常用快捷键汇总(mac)(一)查找/查看相关搜索任意内容 双击 sft1当前文件查找/替换 cmd + F / cmd + R 使用cmd + G,sft + cmd + G,跳到下一...
2021-07-02 15:02:38
511
原创 TextView 实现文字不同大小,不同颜色,不同字体
SpannableStringBuilder span=new SpannableStringBuilder("这是一个美好的世界");//设置字体不同大小span.setSpan(new AbsoluteSizeSpan(dipToPx(this,30)), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);span.setSpan(new AbsoluteSizeSpan(dipToPx(this,20)), 2, 4, Spannable.SPAN_EXCLU.
2021-06-24 16:39:57
1324
原创 ConstraintLayout 约束布局 实现负数布局
以前相对布局RelativeLayout可以利用layout_marginTop="-320dp"达到自己想要的效果,但是ConstraintLayout是不行的,但是我们可以利用Space达到相同的效果 <android.support.v7.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" andr
2021-05-10 16:23:33
862
1
原创 使用ValueAnimator实现view放大缩小动画效果
ValueAnimator valueAnimator = ObjectAnimator.ofFloat(1f, 0.8f);valueAnimator.addUpdateListener(valueAnimator1 -> { valueAnimator1.setDuration(300); valueAnimator1.setRepeatCount(INFINITE); valueAnimator.setRepeatMode(ValueAnimator.REVERSE).
2020-08-05 11:48:36
1618
原创 TextView动态设置图片,实现图文混排
通过这种方式不同每次设置drawable的大小 Drawable drawableLeft = mContext.getResources().getDrawable( R.mipmap.room_user_vip); contentTv.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null);...
2020-07-13 15:53:31
493
原创 Android TextView 一个字符串实现不同颜色支持设置不透明度
1.资源文件<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"><string name="room_ntf_type_diamond"><![CDATA[<font color="#94FFFD"><xliff:g id="USER_NAME">%1$s : </xliff:g></font> <font color="#80fff.
2020-07-06 19:51:31
1035
3
原创 Android 实现google第三方登录 返回错误code 10
最近新接手了一个项目,其中有google第三方登录功能,测试反馈正式包可以正常使用google登录,测试包登录失败。如果第一次配置google登录,需要在官方网站配置相关信息,具体配置这里不做赘述,只提供一下官方地址:https://developers.google.com/identity/sign-in/android/start现有的项目是已经配置好了,只是出现了一些问题,进入firebase网站查看之前的配置信息:https://console.firebase.google.com/pr
2020-05-12 17:21:37
13073
原创 EventBus 3.1.1 源码解析
本文要解决的问题 1.什么是粘性事件?如何实现的? 2.Eventbus内部线程调度是如何实现的? 什么是粘性事件?如何实现的? 粘性事件,是指在发送事件之后再订阅该事件也能收到该事件,这就使得我们可以预先处理一些事件,让有消费者时再把这些事件投递给消费者.``` 发送粘性事件 public void ...
2020-01-16 19:22:59
213
原创 新项目DC Optoin中遇到的问题
1.k线范围图实现颜色渐变2.tablayout添加删减fragment时出现数据丢失3.fragment使用putString传输数据太大的问题4.使用recycleview实现二级菜单并实时刷新时卡顿的问题以及显示隐藏的问题,优化方案使用ExpandableListView...
2019-07-25 11:38:07
211
原创 使用viewpage+fragment无法彻底移除fragment的问题
因为使用FragmentPagerAdapter的时候,加载到viewpage的fragment是无法彻底移除的,只有清空内存时才会移除,所以在根据index获取fragment对象时会出现问题,如果想彻底移除fragment可以使用FragmentStatePageAdapter,就可以解决这个问题,但是使用FragmentStatePageAdapter的时候,如果销毁其中一个fra...
2019-07-17 20:47:07
665
原创 Android根据属性值自定义改变图片颜色
改变ImageView图片颜色<ImageView android:id="@+id/head_img_right" android:layout_width="@dimen/dp_40" android:layout_height="@dimen/dp_40" android:layout_alignParentRight="true" and...
2019-05-16 14:33:32
764
原创 json返回集合,key值动态改变时如何解析
1,一般接口返回的key值是固定的,我们可以写固定的实体类来解析,但是如果接口返回是动态的key,我们如何获取到所有的key和value呢,如图所示2.如图通过如下方式获取存好数据的map的集合JSONObject jsonObject = null;try { jsonObject = new JSONObject(t); JSONArray data = jso......
2019-04-01 14:27:01
2488
原创 Android 开发中使用getAssets获取不到文件的问题
1.通过获取笨的json文件进行解析,提示无法找到文件List<QuestionBean> data = new Gson().fromJson(getStringFromAssert(NormalQuestionActivity.this, "data.json"), new TypeToken<List<QuestionBean>>() {}.get...
2019-03-29 16:03:35
6375
原创 解决Scrollview嵌套横向recycleview滑动冲突问题
1.重写Scrollview,拦截竖向滑动,不拦截横向滑动public class CustomScrollview extends ScrollView { private float mLastXIntercept = 0f; private float mLastYIntercept = 0f; public CustomScrollview(Contex...
2019-01-04 14:20:21
2706
原创 Android studio 出现No usages found in All Places
最近使用AS时,突然发现很多代码显示为灰色的未引用代码,但是确实该代码都有被引用。这对编码很不方便,容易误以为无用代码将其删除。最终解决方案如下:File -> Invalidate Caches/Restart...
2018-12-28 14:46:05
7382
4
原创 在Android 7.0上PopupWindow.showAsDropDown不起作用的解决方法
使用popupwindow时在android7.0以上使用showAsDropDown方法不起作用,经查询需要做兼容性适配,方法如下:public class Solve7PopupWindow extends PopupWindow { public Solve7PopupWindow(View mMenuView, int matchParent, int matchParen...
2018-12-25 15:27:34
754
原创 使用greenDao时,出现 no such table的异常
出现这个异常是因为没有找到表,没有找到表的原因是之前的表已经建好了,而新增的表需要重新初始化数据库才可以建好,所以只需要把schemaVersion 改变一下版本号,重新sync运行一下就可以重新生成表了,另外修改表中字段都需要重新初始化数据库才会生效。greendao{ //数据库版本 schemaVersion 2 daoPackage 'com.android.p...
2018-12-13 16:10:59
4468
4
原创 当scrollview嵌套多个recyclerview时如何实现整个页面的下拉刷新和上拉加载
最近做的一个项目中有个布局比较复杂一点,整个页面是个srollview里面又嵌套了几个recycview,刚开始是有的滑动冲突卡顿的问题,通过如下方法解决了mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2) { @Override public boolean canScrollVerti...
2018-12-11 16:04:24
1800
原创 时间戳转换时间总是会差几个小时
项目中后台接口返回的时间戳,需要移动端动态转换成日期格式大致方法如下:String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(timestamp * 1000));但是运行效果日期却是错误的,后来才发现是模拟器本身的问题,用真机是正常的,用的genymot...
2018-11-30 15:05:53
4454
原创 dk\build-tools\23.0.3\aapt.exe'' finished with non-zero exit value 1
出现这个问题原因:1.图片命名出现非[a-z0-9_.]特殊字符2.布局文件中有找不到资源文件情况,比如找不到文字或者图片 先查找一下最新编辑的几个布局文件有可能更快找到问题。查到问题后重新sync一般就可以了...
2018-11-28 19:25:01
466
原创 android应用上架应用市场时需要注意的问题
最近公司刚刚开发完两个app,需要到各个平台去发布,我们公司暂时只发布360应用市场和腾讯应用市场,由于之前准备工作不足导致发布过程中遇到一些问题,今天在这里整理一下。1.首先最重要的是软著登记证书,现在平台审查严格,凡应用发布必须有各个应用的软著,360平台上有两个上传选项,一个是软著登记证书,一个是资质许可证明,只需上传软著即可,资质证明可以不传,由于之前公司没有提前准备软著,所以只能临时...
2018-10-16 17:50:49
3988
3
原创 华为部分机型对集合排序时会出现错乱的问题
项目中有一个页面需要对车辆品牌进行排序,但是遇到个别机型出现排序错乱的问题public static char getFirstLetter(String name) { String letter = "#"; if (!TextUtils.isEmpty(name.trim())) { String first = name.trim().substri...
2018-08-07 14:24:55
821
原创 Android 软键盘弹出时覆盖了dialog部分内容
如图所示,项目中遇到一个这样的问题,dialog中有输入框,当软键盘弹出时没有将dialog整个顶上去而是覆盖了下面的内容,用户体验不好,经网上查询得知是dialog布局的问题导致,因为顶层布局是使用RelativeLayout 而非LinearLayout导致布局有重叠问题,将顶层布局改成LinearLayout之后就可以将dialog整个顶上去了,效果如下图所示:...
2018-06-27 15:42:22
6119
1
原创 android studio意外重启后 原本的import全部报错
文件类找不到,但是项目可以运行。试了好几个方法都没什么效果,最后在网上看到解决方法,果然好了。解决方法如下:File -> Invalidate Cashes / Restart这样重启一下studio就可以了...
2018-06-19 11:12:44
715
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人