自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (11)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android TV 切换日夜模式后,焦点丢失问题 focusableInTouchMode属性

切换日夜模式后焦点丢失开始时认为焦点丢失的原因是view在变更属性重绘时,没有绘制完成就设置焦点,导致焦点的丢失,进行了一系列恢复焦点的操作,如记录丢失焦点的view然后延时重新requestFocus、或者监听view绘制完成后再延时等等,都没有作用,开始认为是延迟时间不够的原因,后面发现延迟多久requestFocus都不生效,所以可以断定不是重绘导致的问题。设置这个属性之后,点击屏幕,被点击的view会获取焦点,不会触发焦点丢失,但是也带来一个问题,就是第一次点击是触发获取焦点

2024-03-03 08:23:20 271

原创 Android中毛玻璃效果的实践

设置为 true 时,窗口将是半透明的,窗口后面的内容也将是可见的。设置为 false 时,窗口将是不透明的,窗口后面的内容将不可见。通过以上尝试,可以判断出activity对接组件dialog毛玻璃不生效,跟使用的主题有较大关系,但是首页被透明显示的问题未查到根本原因,只知道与。可以实现模糊度效果,但是存在致命问题:Activity弹出后,MainActivity直接被透明了,看到了桌面。可是避免方案1的问题,但是模糊度没办法做到和组件一样,只能通过调节模糊比例,做到近似效果。:Activity利用。

2024-03-03 08:21:41 783

原创 ExoPlayer包体积优化

应启用应用程序的发布版本的代码和资源缩减。例如,对于播放 DASH 内容的应用程序,通过启用代码缩减,ExoPlayer 对 APK 大小的贡献可以减少约 40%。依赖于 ExoPlayer 库中提供的所有提取器实现,因此代码缩减不会移除其中的任何提取器。如果你知道你的应用程序只需要播放少量容器格式,或者根本不播放渐进式媒体,可以自定义指定。依赖于 ExoPlayer 库中提供的所有渲染器实现,因此代码缩减不会移除其中的任何渲染器。如果你知道你的应用程序只需要渲染器的子集,可以自定义指定。

2023-12-30 10:08:07 427

原创 recyclerview优化:DiffUtil使用过程中遇到的问题总结-kotlin中==未比较equals的问题分析

而我项目中自定义的java bean没有实现equals方法,这就导致在判断调用的时候,调用的是any默认的equals方法,仅会对引用进行比较,而不会对字段进行逐一的比较。问题2:使用==比较。其实这个问题的原因是项目中,虽然在调用处使用的是kotlin,但是bean文件是用Java创建的,这其实就涉及到一个java和kotlin混合使用的问题。这个问题就比较奇怪了,根据对kotlin的理解,==比较就是调用equals进行比较,并且写过测试代码,当字段变化时,两个对象进行比较返回的是false。

2023-09-24 09:58:38 192

原创 TV焦点实战总结

解决办法是改用notifyItemRangeChanged(0,5)方法刷新所有数据,0代表position(recyclerview的开始位置),5代表刷新后item的数量。② 设置不可获取焦点 : 凡是 不需要获取焦点的组件 , 统一添加 android:focusable=“false” 属性;① 设置可获取焦点 : 给 需要获取焦点的组件 , 统一添加 android:focusable=“true” 属性;android:descendantFocusability 属性;

2023-09-24 09:22:17 173

原创 sw适配方案,运用ScreenMatch插件

将基础文件复制一份到match生成的screenMatch_example_dimens文件中。代入公式,计算出 dp = 2160 / (160 / 160) = 2160 dp。在screenMatch.properties指定match_dp=2160。dp的计算公式是:dp = px / (dpi / 160)。根据设计稿的1080,可以计算出是两倍关系。其它分辨率的文件会基于这个文件内容来生成。设计稿是基于1960*1080的,则base_dp指定为1080。

2023-09-24 09:17:55 197 1

原创 Android 修改代码后不生效问题的终极方案

但是最终遇到一个咋配置都不生效的项目,这里主要就是当你咋配studio都不生效,gradle咋改都不好使的时候,提供一些节约时间的方法。最后,到底为啥改了代码重新run会不生效,我没找到根本原因,怀疑是gradle配置的问题,会不会与多module的sourcesets有关系,尝试去配置了sourcesets,但是没生效,希望找到原因的同学一起交流。前言: 最近遇到几个项目,都出现了代码修改后,直接点studio上的run,跑起来后代码没生效,如果重新clean。这个方案比较麻烦,要操作步骤比较多。

2023-09-07 19:01:33 1455 2

原创 实现加载圈的方式

参考:https://blog.csdn.net/chenlove1/article/details/41758977。

2023-07-13 14:51:50 105

原创 Kotlin无法调用到Java中定义的interface类的问题“Interface is inaccessible declaration of ‘..‘ appears in /data/app”

Java中默认的方法和变量默认是protected的修饰,但是kotlin中却无法调用protected修饰的方法。所以只需要在interface前面加上public的修饰符就好了。

2023-06-07 13:40:17 176

原创 Fragment的容器-FragmentContainerView;android.widget.FrameLayout{c69d6ea V.E...... ........ 0,0-2560,121

另外一个好处,使用FragmentContainerView,可以使得管理Fragment变得更加方便,避免常见问题,如在屏幕旋转期间保存和恢复Fragment状态。我们可以点进FragmentContainerView的源码,发现它也是继承于FrameLayout的。添加的动画,可以保证退出动画的Fragment在 FragmentContainerView 的所有其他Fragment之前绘制,在使用Fragment的时候,一般会采用framelayout占位的方式,然后使用replace替换。

2023-06-02 10:12:55 429

翻译 Robolectric——Shadows 官网翻译

Robolectric 通过创建一个包含真实Android 框架代码的运行时环境来进行工作。 这意味着,当你的测试或被测试代码调用到Android框架时,你会获得更真实的体验,因为这跟在实际设备上执行的大部分代码都是相同的。然而还是有一些限制:Native code(源代码) - Android源代码不能在你的开发机器上执行。2.Out of process calls(进程外调用) - 你的开发机器上没有运行Android系统服务。3.不足的测试Api - Android几乎没有适合测试的ap

2021-03-04 15:08:59 548 2

原创 Junit 的 @RunWith():Runner,即Junit的运行器

什么是Runner,@RunWith()到底有什么用?Runner是Junit的运行器,即运行测试用例的工具。我们可以在测试类之上,使用@RunWith()注解为这个类指定一个特定的Runner。当我们没有指定@RunWith()的时候,会自动使用Junit的默认Runner——BlockJunit4ClassRunner。常用的Runner:Suite:测试套件 ;Category:按种类区分的套件;Parameterized:参数化测试; Theories:排列组合。利用 Runner,可以

2021-02-22 19:15:46 4154

原创 DialogFragment——解决PopupWindow中的输入框无法复制粘贴的问题;Android中的两种弹窗PopupWindow和Dialog的区别。

本文旨在介绍Android中的两种弹窗PopupWindow和Dialog的区别。其实之前各类弹窗,都是使用PopupWindow来实现的。因为PopupWindow能实现这些需求,虽然有的时候有些麻烦,比如前面的文章有写到PopupWindow去实现蒙版遮罩的问题。它本身是没有蒙版提供的。我们项目中使用各种方法去给它增加遮盖层。如今看来确实是有些愚蠢的。我不介意说出以前存在的问题,因为发现问题并改进问题才是学习的过程。当然也希望看到这篇文章的小伙伴有自己的想法可以多多沟通,如果也有跟过去的我一样盲目的

2021-02-05 18:37:52 521

原创 ConstraintLayout使用中遇到的问题:同一行内的两个Textview,第二个被挤出屏幕的解决方案

遇到的一个问题:同一行的两个Textview,要实现两个View连着,前一个view的内容长度不确定,过长的时候会导致第二个view被挤出屏幕外,使用LinearLayout也会出现这种情况。这里提供一个解决方案:借助于辅助线,和app:layout_constrainedHeight表示是否约束height,相应的也有app:layout_constrainedWidth*app:layout_constraintVertical_bias表示作用于链头第一个子控件,通过设置值0~1控

2021-01-27 16:19:05 2683

原创 一个实现带灰色蒙版从底部弹出的PopupWindow基类封装(解决蒙版覆盖虚拟按键问题)

主要解决的问题:1.项目中过多冗余的PopupWindow初始化2.每个页面单独对灰色蒙版进行处理,并且效果并不是特别好。3.使用WindowManager设置透明度,PopupWindow因为有延时动画,快速点击的时候,会出现一定异常情况。4.使用WindowManager的透明度设置灰色蒙版,存在当底部展示虚拟按键的时候,灰色蒙版会覆盖到虚拟按键上。解决思路:1.在基类中初始化一个PopupWindow,并对其进行一些常规的设置(通常大部分页面的设置都差不多,取最常用的配置.

2020-12-10 18:37:55 384 1

原创 Appium学习笔记——Appium初探,下载与安装以及初步的录制尝试

一.Appium简介Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用WebDriver协议驱动iOS,Android和Windows应用程序。可以跨平台同时支持Android、iOS 支持多种语言,java、python、php、Ruby等等可支持屏幕录制生成脚本。二.Appium的下载与安装Appium Server就是Appium的服务端——一个web接口服务,使用Node.js实现。因已不再维护,我这里直接使用Appium-Desk...

2020-12-02 20:41:18 277

原创 Flutter系列(基于Android开发)——开发环境配置——2020-11-27

**基于Android****一、下载Flutter SDK**使用git命令行下载(没装git的可以去下载一下啦,网上各种下载zip的方式尝试了半天,最后才知道解压有隐藏文件解压不出来的情况,设置的时候一直提示sdk不完整,所以直接放弃这条路了,使用git命令行完美解决)打开git bash,执行如下命令:常规:git clone https://github.com/flutter/flutter.git镜像加速:(下载太慢尝试这个)(我用的是这个)git clone --dept

2020-11-27 16:04:53 781

原创 String.format与手机设置的语言环境的关系导致语言转换系统无法识别闪退问题

String.format与手机设置的语言环境的关系导致语言转换系统无法识别闪退问题

2017-06-13 10:41:43 1007

原创 installation failed with message install_canceled_by_user应用安装失败

小米5,测试时,应用安装失败,提示installation failed with message install_canceled_by_user。解决方法: 在开发者模式下(如何进入开发者模式,关于手机 —— 连续点击MIUI版本 选项,即可进入开发者模式),设置 —— 更多设置 —— 开发者选项 —— USB安装,开启,即可跑应用,注意在安装的过程中会提示是否安装,要手动选择安装。

2016-11-19 15:06:32 9733 6

原创 android如何查看手机中的db文件,查看sqlite数据库的表结构

我们的app里面用到sqlite数据库的时候, 会生成一个db文件,保存在我们手机中。有的时候,在调试数据库,很想看一下里面的表结构是否正确,这个时候就十分苦恼,因为这个db文件不能够直接拿出来,我们知道,在DDMS里面有一个FileExplorer,它里面保存着手机中的各个文件夹,但是尝试打开里面的文件夹的时候,却发现怎么点都没有东西,是真的没有吗?其实是我们没有获取到访问这个文件夹的权限。下面我

2016-08-30 14:14:20 51864 3

原创 Android 属性动画实现抛物线动画

此前多次学习过安卓动画,知道有三种动画,知道三种动画的特性,但是一直没有实践过,看了没有多久,就忘记了,而且也不会用,这次通过实现“抛物线”动画,对安卓的动画有了一次较为明确的理解。首先,安卓的三种动画有哪三种呢? 1、Tween Animation 渐变(补间)动画 2、Animation-list 逐帧动画 3、Property Animation——Animato

2016-06-29 14:44:27 7967

翻译 使用Android Studio的Live Templates——实现用少量的代码写出更多的代码

原文地址如果你已经写了大量的Android代码,你可能至少有一次的犯了这个错误: Toast.makeText(MainActivity.this, "This will not be displayed");如果我告诉你,这里有一种方法能够保证你可以避免这个错误,并且只需要很少的键盘输入。 我说的这个方法是一种什么魔法吗? 答案是Live Templates!如果你是一个经验丰富的Int

2016-03-30 13:01:42 1677 1

原创 android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明

首先我要区分清楚沉浸式状态栏与变色状态栏。沉浸式状态栏指的是,状态栏隐藏,在手指做了相关操作后,状态栏显示出来,例如视频播放器,在播放视频时是隐藏状态栏的,但是点击屏幕的时候,状态栏会显示出来,再例如文本阅读器,在阅读的时候是全屏的,然后从屏幕上方下滑或者下方上划,虚拟键和状态栏出现了,但却是直接覆盖在程序文字上的,这是所谓的沉浸式状态栏。 那么大家平时所说的状态栏与导航栏颜色相同,或

2016-03-28 14:09:24 36513 12

原创 Android带日程安排的自定义日历控件

自定义的日历控件,可以添加日程安排。

2015-10-27 14:46:11 9408 4

原创 非常简洁的自定义dialog实现方式(带源码)

/** * 自定义dialog * @author Administrator * */public class CustomDialog{ private TextView title; private TextView detial; private Button cancel; private Button ensure; private Dialog mDialog;

2014-05-08 14:13:09 735

原创 自定义spinner实现修改字体大小、颜色等

spinner默认显示的字体颜色为纯黑色,在一些情况下,我们想要改变这种颜色,但是却发现在spinner的属性里面并没有setTextColor类似这样的属性,也就是说我们无法简单的直接设置其内部字体的颜色。通过查找资料,我们可以通过使用adapter的方式来实现我们想要的效果。效果如图:代码如下:1、写一个单独的布局文件personal_spinner.xml,里面只包含

2014-01-21 11:27:15 7110

jdk-9.0.4_windows-x64_bin ,jdk9 ,官网下载不到了

jdk9 ,官网下载不到了

2021-02-07

MyApplication2.zip

一个实现带灰色蒙版从底部弹出的PopupWindow基类封装(解决蒙版覆盖虚拟按键问题)1.项目中过多冗余的PopupWindow初始化 2.每个页面单独对灰色蒙版进行处理,并且效果并不是特别好。 3.使用WindowManager设置透明度,PopupWindow因为有延时动画,快速点击的时候,会出现一定异常情况。 4.使用WindowManager的透明度设置灰色蒙版,存在当底部展示虚拟按键的时候,灰色蒙版会覆盖到虚拟按键上。

2020-12-10

Appium-windows-1.19.1-beta.0.exe

Appium windows 版本 1.19.1 exe,下载,安装即可使用Appium-windows-1.19.1.exe下载

2020-12-02

Appium-windows-1.15.1.exe下载

Appium windows 版本 1.15.1 exe,下载,安装即可使用Appium-windows-1.15.1.exe下载

2020-12-02

抛物线属性动画缩放属性动画可自定义起点终点

用属性动画实现的抛物线动画,可自定义起始、终点位置,抛物线结束后,缩小消失。用属性动画实现的抛物线动画,可自定义起始、终点位置,抛物线结束后,缩小消失。

2016-06-29

android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明

实现4.4以后的状态栏与app的导航栏颜色相同,android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明。

2016-03-28

Android带日程安排的自定义日历控件

实现了自定义的日历控件,并加入日程安排的功能,在日历控件上添加红点显示是否有日程,并包括枚举类型的练习使用。

2015-10-27

自定义控件---实现天气折线图效果

自定义自定义控件仿天气折线图的绘制,有天气图片 温度显示等自定义控件仿天气折线图的绘制,有天气图片 温度显示等控件仿天气折线图的绘制,有天气图片 温度显示等

2014-06-03

自定义dialog源码

简单 便捷 可塑性强, 可根据这个方法来自定义各种自己需要的dialog类型。 如果觉得可以 赞一下哦~

2014-05-08

android实现简易的涂鸦板

android实现简易的涂鸦板,可选画笔颜色、粗细,可保存,擦除

2014-01-27

spinner实现自定义修改字体颜色大小

spinner默认显示的字体颜色为纯黑色,在一些情况下,我们想要改变这种颜色,但是却发现在spinner的属性里面并没有setTextColor类似这样的属性,也就是说我们无法简单的直接设置其内部字体的颜色。

2014-01-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除