
work遇到问题
yangaiyu
程序猿之路。。。。
展开
-
Android获取屏幕高度的坑
安卓手机想要获取屏幕高度,有以下几个方法:第一个我们先不讲,因为实测和后面2、4基本一样,况且网上说的少用的也少一开始我用的是方法4(因为他看起来最简单),发现在一些全面屏手机上高度会少了十几个像素,在普通手机上是准确的。后来发现主要是虚拟按键的问题,会将虚拟按键的高度忽略掉。点击去看到他的说明是问题就在这个available上了。同理,还有方法,在Android4.4之后会隐藏掉状态栏的高度,注释里还写了一大堆,像来自Activity的请求在多窗口模式下会小于物理高度(这又是另一个坑了)正在上传…转载 2022-06-09 21:59:53 · 2099 阅读 · 0 评论 -
Android 动态更改View尺寸后,没有变,达不到想要的效果
一、场景: TabLayout + ViewPage. 使用NestedScrollView嵌套,滑动的时候Tab会被顶上去二、达到效果的做法:NestedScrollView app:layout_behavior="@string/appbar_scrolling_view_behavior" 包裹的LinerLayout增加 (共有三个属性,自行查询) android:descendantFocusability="afterDescendants" TabLayou...原创 2022-05-25 14:40:53 · 1239 阅读 · 0 评论 -
自定义权限在不同签名下使用会报错,权限重复问题
解决方法:com.xxx.download.permissions.MY_BROADCAST 改为 ${applicationId}.permissions.MY_BROADCAST 修改代码中AndroidManifest.xml,以及代码中引用的;反编译后,重新打包为module,打包aar,测试没问题;反编译工具jd-gui-windows-1.6.6 ,用工具打开aar,File-Save All Sources 会把源码保存到本地,此时对应目录拷贝到所需模块即可。参考:https://b原创 2021-04-29 14:32:21 · 274 阅读 · 0 评论 -
androidx入坑
1. support-v4对应的兼容包implementation 'androidx.legacy:legacy-support-v4:1.0.0'2. 依次类推support-v13和 support-preference-v14legacy-support-v13legacy-preference-v143. support-v4包中有一个LocalBroadcastManager类android.support.v4.content.LocalBroadca..原创 2021-02-24 17:30:55 · 3636 阅读 · 0 评论 -
记录EventBus在Fragment复用时,发送消息发送多次问题(双层VierPage+TabLayout)
1. 需求五个tab页面,子页面也有subTab的页面;父级标题:tab + ViewPager(5个BaseFragment) 父级tab滑动与ViewPager关联的子级标题:subtab + ViewPager(n个BaseFragment) 子级tab滑动与ViewPager关联的2.问题1有subTab页面,切换子标题没有更新,一直是第一次请求的副标题;数据请求混乱; 3.错误方案1请求数据需要父tab的position,没有...原创 2021-01-15 15:06:53 · 845 阅读 · 1 评论 -
Gson的使用和转换
1.普通类的互转LatLng latLng = new LatLng(39.9, 116.6, 13.5);//类转jsonString latLng_json = new Gson().toJson(latLng);//json转类LatLng new_latLng = new Gson().fromJson(latlng_json,LatLng.class);2. List集合互转List<LatLng> latLngs = new ArrayLis.原创 2020-11-25 10:23:44 · 191 阅读 · 0 评论 -
正则表达式的写法探索
1.需求 匹配字符串 "other_ids":"[a,b,c]"匹配字符串 "other_ids":""匹配字符串 "other_ids":"[a]"匹配字符串 "other_ids":"[a,b]"2.结果:正确的正则表达式为String regEx = "\"other_ids\":\""+"(\\[.*\\])?"+"\"";3.尝试过程1)先用字符串 "other_ids":""作为表达式正确匹配字符串 "other_ids":"";...原创 2020-11-06 11:32:02 · 263 阅读 · 1 评论 -
android studio 新项目一直卡在gradle插件下载中...
项目一直卡在gradle插件下载中1.查看项目的gradle版本和插件版本是否对应官网版本对应介绍2.替换仓库地址为镜像地址参考阿里云公共代理库https://www.jianshu.com/p/ab1f5e5f5f5c修改前的依赖buildscript { repositories { mavenCentral() jcenter() google() } dependencies { ..转载 2020-10-13 09:48:50 · 660 阅读 · 0 评论 -
NestedScrollView嵌套WebView
1.嵌套成功后webView高度为0不显示2.需要在加载完成方法中重新设置webView高度3.解决方法:1)尝试webView.getheight: 0不正确webView.getContentHeight: 966不正确webView.getMeasureHeight: 0不正确2)debug发现webView.computeVerticalScrollRange()方法计算出来是真实内容高度但此方法是protected权限,所以重写了一个自定义WebView拿到..原创 2020-09-28 10:28:24 · 2670 阅读 · 1 评论 -
依赖的地址下载地址混乱,报下载失败 400
问题:一个maven仓库中依赖了另一个maven仓库的aar,但是获取下载aar时,aar的链接地址是前一个maven仓库的地址,所以导致下载时候报400,下载不下来解决方法:gradle插件版本的问题:4.0.0换成3.5.3就可以了gradle-wrapper.properties :中下载版本由gradle-6.1.1-all.zip 改为gradle-5.4.1-all.zip...原创 2020-08-13 16:15:38 · 379 阅读 · 0 评论 -
RadioButton使用中的坑:刷新时重复走了一遍onchecked方法
RadioButton使用中的坑:刷新时重复走了一遍onchecked方法问题:首次进入需要更新button的状态,但是这样监听中的回调就会回调就会走两次,按下一次,下次进来刷新的时候又是一次;需求:弹出pop,选中地图上显示点,关闭窗口;做法一:radioButton 设置drawable,和选中监听 binding.cbMapSetCollection.setOnCheckedChangeListener(this); <?xml versio原创 2020-07-29 10:13:16 · 1029 阅读 · 1 评论 -
android 7.0 provider访问本地文件增加权限后,File和Uri转换问题
1.File转UriUri contentUri = FileProvider.getUriForFile(context, "com.xxx.camera.fileprovider", file);2.Uri转File未完待续。。。原创 2020-06-08 14:58:33 · 668 阅读 · 0 评论 -
android 首次编译不成功,jcenter库可以使用ali的
jcenter(){url 'http://maven.aliyun.com/nexus/content/groups/public/'}原创 2020-04-30 08:44:17 · 226 阅读 · 0 评论 -
BottomSheetDialog设置固定高度,和圆角背景问题
1.自定义MyBottomSheetDialog,设置高度为屏幕3/2,去除状态栏/** * 设置dialog 的总高度为固定的值 * */public class MyBottomSheetDialog extends BottomSheetDialog { public MyBottomSheetDialog(@NonNull Context context) { ...原创 2020-02-25 10:17:45 · 6947 阅读 · 3 评论 -
使用NavigationUI 加载Fragment,如何获取Fragment对象
1. NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);// NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration); ...原创 2020-02-21 11:19:06 · 5707 阅读 · 0 评论 -
okhttpclient打印网络请求的完整log日志
1. OkhttpClient添加拦截器 设置logging信息打印日志 private HttpLoggingInterceptor logging = new HttpLoggingInterceptor(message -> Timber.e("okhttp response json = %s", message)); private OkHttpClient ge...原创 2020-02-18 14:37:28 · 5088 阅读 · 0 评论 -
TextView英文内容g、j上下显示空间不足问题
由于UI需要更改了默认字体,去除了字体的padding,所以国际化切换为英文状态时,英文的g j都显示不全;增加此句话就可以解决:textView.setIncludeFontPadding(true);...原创 2020-02-10 14:10:49 · 1100 阅读 · 0 评论 -
Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
1.在lib文件夹下增加so包libmp3lame.so2.build.gradle中设置android{sourceSets { main { jniLibs.srcDirs = ['libs'] }}}3.so包的版本,64 32确保so包可以被加载到android { defaultConfig { ...原创 2020-01-03 08:52:59 · 1004 阅读 · 0 评论 -
android屏幕适配攻略
1.布局适配用sw限定符适配方法2.全面屏、刘海屏、水滴屏适配AndroidManifest.xml中 application下增加 android:resizeableActivity="false" (意思是不可以分屏显示)与下面搭配必须为false <meta-data android:name="an...原创 2019-12-17 15:13:39 · 1365 阅读 · 0 评论 -
WebView使用经验总结
项目使用少,经久不用就忘了,全靠趟坑和度娘了,没办法基础不牢靠,只能费劲趟1.使用初期xml和初始化是必要的,还是记录一下吧,省的以后脑子不好使<WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent"...原创 2019-12-13 09:10:56 · 345 阅读 · 0 评论 -
fragment下popupwindow点击外侧不能取消的且不穿透下部的Fragment
1.在activity中设置一个方法,传入popprivate CompareThemePop compareThemePop;public void setComparePop(CompareThemePop pop){ this.compareThemePop = pop;}2.在activity中重写dispatchTouchEvent方法,消费点击事件@Over...转载 2019-12-06 13:56:36 · 656 阅读 · 0 评论 -
Retrofit+RxJava 网络请求报错 Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 22 path $.data
1.一定要明白含义:以上错误从字面看就是类造型失败的异常:需要一个array 但是给到了一个 object; 这个错误,之前遇到过,但是昨天遇到,把这个含义给搞反了,找了半天问题;2.这个错误可能的原因有两个:1)移动端,网络请求解析字符串时,构造的bean类型与返回的字符串类型不一致; 一定要仔细检查每个环节,我的bean构造正确;但是在刚开始写接口的时候service...原创 2019-12-06 09:45:48 · 1430 阅读 · 0 评论 -
Android app应用多语言切换功能实现
1. 实现的效果和微信类似,在设置界面打开切换语言的界面,选择语言后重启 HomeActivity,语言切换完成,下次重新打开 App ,也是用户设置的语言。2. 实现步骤1. 添加多语言文件在不同的 value 文件夹下(例如 value 、value-en、values-zh-rTW 文件夹)添加不同语言的string.xml文件,我们的项目添加了英文、简体中文、繁体...转载 2019-11-14 16:01:05 · 678 阅读 · 0 评论 -
v4v7升级到androidx过程,老的项目在新版本studio中刚打开,报错
1.因为原项目应用的都是v4v7包,谷歌改成androidx后就升级了一番,首先在properties文件2.然后在菜单里点击升级,studio会帮你把报名什么的都改掉打开项目,发现都自动改掉了,完美,然而做为一个android开发,我怀疑可能没有那么简单,做好心理准备,我们不能太年轻了,应该成熟点了果然,运行一番过不了,但是看log发现了一些日志,无非就是一些第三方库要升级了...转载 2019-11-13 13:12:07 · 1225 阅读 · 0 评论 -
android截屏方法
1.直接上代码,截取屏幕工具类:ScreenShotHelperimport android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.res.Resources;import android.graphics.Bitmap;im...原创 2019-10-25 09:37:37 · 470 阅读 · 0 评论 -
android 8.0 appwidget跳转apk进程失败
1.appwidget中没有界面,点击直接跳转到app无法启动2.解决方法1)新建一个EmptyActivity,activity中的finish界面public class EmptyActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) {...原创 2019-10-15 17:32:26 · 623 阅读 · 0 评论 -
Android的基本知识
一、Android的基本知识1.Android:机器人2.Android是移动端的操作系统3. 2003年安迪·鲁宾创建了Android公司,有了Android系统2005年谷歌收购Android公司,Android系统也由谷歌接手研发2007年11月5日,建立了全球性的联盟组织(该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成。),向外界展示Androi原创 2016-08-25 23:27:28 · 529 阅读 · 0 评论 -
StringUtils详细介绍
public static void TestStr(){ //null 和 ""操作~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //判断是否Null 或者 "" //System.out.println(StringUtils.isEmpty(null));//System.out.println(StringUtils.isNo转载 2016-12-14 16:11:22 · 1467 阅读 · 0 评论 -
Go logo Google的编程语言 Go
Go是Google开发的一种编译型,並發型,并具有垃圾回收功能的编程语言。罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go语言,,稍后Ian Lance Taylor, Russ Cox加入项目中。Go语言是基于Inferno操作系统所开发的。Go语言于2009年11月正式宣布转载 2016-12-15 11:46:11 · 1442 阅读 · 0 评论 -
获取屏幕尺寸,包括状态栏
一大波干货来袭,屏幕尺寸各种获得,状态栏尺寸可正确获得,亲测。123456789101112131415161718192021222324252627282930313233343536373839404142转载 2017-01-03 10:30:51 · 750 阅读 · 0 评论 -
弧度 和 角度的理解, 以及相互转换
弧度与角度的关系一、角的两种单位 “ 弧度”和“度”是度量角大小的两种不同的单位。就像“米”和“市尺”是度量长度大小的两种不同的单位一样。 在flash里规定:在旋转角度(rotation)里的角,以“度”为单位;在三角函数里的角要以“弧度”为单位。这个规定是我们首先要记住的!!!例如:rotation2--是旋转“2度”;sin(π/2)--是大小为“π/2弧度”的角的正弦转载 2017-01-03 17:54:04 · 3778 阅读 · 0 评论 -
Android中px与dip,sp与dip等的转换工具类
功能通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变。方法中的参数请参考http://www.cnblogs.com/wader2011/archive/2011/11/28/2266669.html代码/** * Android大小单位转换工具类 * * @author wader转载 2016-12-26 17:45:03 · 296 阅读 · 0 评论 -
Android中px dpi dip density densityDpi 的相关说明
概念解释名词解释Px(Pixel像素)不同设备显示效果相同。这里的“相同”是指像素数不会变,比如指定UI长度是100px,那不管分辨率是多少UI长度都是100px。也正是因为如此才造成了UI在小分辨率设备上被放大而失真,在大分辨率上被缩小。Screen Size(屏幕尺寸)一般所说的手机屏幕大小转载 2016-12-26 17:46:03 · 291 阅读 · 0 评论 -
Android中的适配问题
一、关于布局适配 1、不要使用绝对布局 2、尽量使用match_parent 而不是fill_parent 。 3、能够使用权重的地方尽量使用权重(android:layout_weight) 4、如果是纯色背景,尽量使用android的shape 自定义。 5、如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。比如要适配1080转载 2016-12-26 17:47:58 · 330 阅读 · 0 评论 -
Android适配难题全面总结
支持多种屏幕Android 可在各种具有不同屏幕尺寸和密度的设备上运行。对于 应用,Android 系统在不同设备中提供一致的开发环境, 可以处理大多数工作,将每个应用的用户界面调整为适应其显示的 屏幕。同时,系统提供 API,可用于控制 应用适用于特定屏幕尺寸和密度的 UI,以针对 不同屏幕配置优化 UI 设计。例如,您可能想要不同于手机 UI 的 平板电脑 UI。虽然系统为使您的应用适转载 2016-12-29 09:25:54 · 910 阅读 · 0 评论 -
Android开发 - 如何完全退出Activity
在网上看了好多大牛关于完全退出Android应用程序Activity的处理方式,我总结出一下几个方法: 1、创建一个Activity的基类,重写startActivity()方法,在里面添加一句finish()。其他的Activity继承这个基类,这样在启动一个新的Acitivty之前就可以退出前一个Acitivity。当然这样有一个坏处是当返回时不能返回到前一个Activity,所转载 2016-12-29 09:30:00 · 1188 阅读 · 0 评论 -
android中的坐标系以及获取坐标的方法
android中的坐标系以及获取坐标的方法 android中有两种坐标系,分别称之为Android坐标系和视图坐标系。而对应的也有一些相关的方法可以获取坐标系中的坐标值。只有搞清楚这些区别,才能在实现的时候不至于出错或者得不到你想要的效果。 一、Android坐标系和视图坐标系 (1)Android坐标系 先转载 2016-12-29 14:51:49 · 469 阅读 · 0 评论 -
android那些事之Bitmap、InputStream、Drawable、byte[]、Base64之间的转换关系 复制代码
// 将Bitmap转换成InputStream(压缩率quality、100表示不压缩、10表示压缩90%) 2 public InputStream Bitmap2InputStream(Bitmap bm, int quality) { 3 ByteArrayOutputStream baos = new ByteArrayOutput转载 2017-01-09 11:36:24 · 1038 阅读 · 0 评论 -
Android中实现定时器的四种方式
1、继承关系java.util.Timer基本方法schedule例如:timer.schedule(task, delay,period); //delay为long,period为long:从现在起过delay毫秒以后,每隔period毫秒执行一次。 schedule方法有三个参数第一个参数就是转载 2017-01-09 14:24:35 · 361 阅读 · 0 评论 -
使用meminfo分析Android单个进程内存信息
可以使用adb shell dumpsys meminfo -a /来查看一个进程的memory。截图如下:Naitve Heap Size: 从mallinfo usmblks获得,代表最大总共分配空间 Native Heap Alloc: 从mallinfo uorblks获得,总共分配空间 Native Heap Free: 从mallinfo fordblks获得,转载 2017-01-10 10:11:49 · 1262 阅读 · 0 评论