Android初级篇
简雨山舍
我的微博@简雨山舍——中国图库签约摄影师!户外旅行摄影师+Android软件开发工程师!
展开
-
Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView 错误解决方案
场景:在使用BottomNavigationView 时报错Error inflating class com.google.android.material.bottomnavigation.BottomNavigationView问题:如何解决BottomNavigationView 使用时的报错问题?解决方案:build.gradle文件添加如下配置android{....com...原创 2020-04-21 11:09:19 · 2524 阅读 · 0 评论 -
Android 颜色透明度设置方法
场景:给设计的字体添加一个透明度问题:如何给颜色设置透明度?解决方案:00% :FF(不透明) 5% : F2 10% :E5 15% :D8 20% :CC 25% :BF 30% :B2 35% :A5 40% :99 45% :8c 50% :7F 55% :72 60% :66 ...原创 2019-12-02 13:57:52 · 1337 阅读 · 0 评论 -
开发SDK中包含第三方库,发布aar库时怎么处理引用的第三方库?
场景:开发一个sdk,sdk引用了第三方库。问题:我们发布自己的aar时,这些库怎样处理?解决方案:aar会依赖这些第三方库,无需做特殊处理。原创 2019-10-16 19:02:57 · 1397 阅读 · 0 评论 -
android接入微信登录授权提示{"errcode":40125,"errmsg":"invalid appsecret, view more at 。。。解决办法
android接入微信登录授权提示: {“errcode”:40125,”errmsg”:”invalid appsecret, view more at http:\/\/t.cn\/RAEkdVq, hints: [ req_id: iDticA0667th44 ]”}1.代码中设置的微信APPsecret和微信开放平台不一致,需要您自己对照微信开放平台和代码中的appsecret, 检...原创 2018-04-10 18:37:47 · 37633 阅读 · 10 评论 -
Android微信登录,分享后没有回调(创建wxapi包的时候,一定要和开放平台填写的路径一致)
Android微信登录,分享后没有回调(创建wxapi包的时候,一定要和开放平台填写的路径一致)1.首先区分applicationId与package name的区别我们在其他平台创建应用时候要填写:applicationId。 程序结构包名可以和applicationId不同。但是,微信wxapi的文件结构包名必须和你填写的applicationId相同。 例如你的程序结构是com....原创 2018-04-10 15:54:46 · 3413 阅读 · 1 评论 -
Android出现:Your project path contains non-ASCII characters.
导入Project的出现:Error:(1, 0) Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See http://b.a...转载 2018-03-20 15:08:49 · 418 阅读 · 0 评论 -
RecyclerView 多条数据却只显示一条数据
解决过程: 首先检查数据是否错误,通过在RecyclerView.Adapter#getItemCount 中 打印对应数据的 size 发现数据个数正常,排出数据本身的问题;那么再去打印 RecyclerView.Adapter#onBindViewHolder 发现这个方法只调用了一次。说明当前视图只需要显示一个Item,可是明明需要显示多个啊,那么原因就只有一个了,一个Item把整个视图...转载 2018-03-19 14:34:03 · 3262 阅读 · 5 评论 -
ScrollView、RecyclerView自动滚动原理分析,3种阻止自动滑动的解决方案
ScrollView(RecyclerView等)为什么会自动滚动原理分析,还有阻止自动滑动的解决方案引言,有一天我在调试一个界面,xml布局里面包含Scroll View,里面嵌套了recyclerView的时候,界面一进去,就自动滚动到了recyclerView的那部分,百思不得其解,上网查了好多资料,大部分只是提到了解决的办法,但是对于为什么会这样,都没有一个很好的解释,本着对技术的负责...转载 2018-03-16 14:23:27 · 2173 阅读 · 0 评论 -
android通过webView加载第三方h5应用,无法加载图片和播放视频的解决方法
只需给webview的配置中加上下面这段代码即可解决 这是http与https重定向的问题导致 因为从Android5.0开始,WebView默认不支持同时加载Https和Http混合模式。项目里面图片的地址和视频的地址是https的,而项目所在的域名为http的,所以跟安卓小伙伴沟通加上下面一段代码,完美解决if(Build.VERSION.SDK_INT >= Build.VERSION_C原创 2017-12-18 14:31:47 · 2952 阅读 · 1 评论 -
androidstudio批量删除注释的方法
打开类,按Ctrl+F打开搜索框 勾选Reges复选框在搜索框输入如下正则表达式/*([\S\s]+?)*以上正则表达式去掉的是如下格式的注释块/***这里是注释*///[\s\S ]*以上正则表达式去掉的的是如下格式的注释块//这里是注释原创 2017-12-25 18:55:17 · 5424 阅读 · 1 评论 -
【异常处理已解决】java.lang.ClassNotFoundException: Didn't find class "android.os.PersistableBundle"
针对以上的异常问题:个人综合网上的解决方式,供大家参考: 我遇到的问题是在android4.4.2系统上,程序会carsh。4.4以上正常,考虑是系统兼容性问题,最后通过第4种方法解决,在出现问题的activity的onCreate方法中删除了PersistableBundle persistentState参数,问题解决。首先我们要知道如何排查问题;定位问题存在的 类或者方法:例如点击单个按钮出转载 2017-12-05 14:46:06 · 2861 阅读 · 0 评论 -
androidstudio更换svn地址方法
1.先找到自己项目的文件夹,然后在文件夹上右键,选中svn客户端,选中重新定位选项,会弹出如下对话窗口,询问要从什么地址定向到什么地址。在输入框输入新的svn地址,点击确定2.在androidstudio依次打开,VCS-Subversion-Relocate 3.在弹出的输入框上下都输入新的svn地址,确定 4.最后点击androdistudio上svn更新按钮,在输入框输入新的svn地址,确原创 2017-11-24 17:15:16 · 2409 阅读 · 0 评论 -
AndroidStudio如何根据返回的json数据快速自动生成实体类,只需一个GsonFormat插件
AndroidStudio如何根据返回的json数据快速自动生成实体类,只需一个GsonFormat插件1.在Android Studio中点击左上角菜单栏中的File,然后点击Settings,在弹窗中选择Plugins,然后点击下方的Browse repositories… 2.在新打开的窗口中搜索GsonFormat,点击右侧绿色按钮下载安装,安装完重启下AndroidStud...原创 2018-04-13 15:56:41 · 4689 阅读 · 0 评论 -
接入腾讯TBS浏览器WebViewX5内核,内部页面重新定向加载异常,无法加载的问题处理方法
接入腾讯TBS浏览器WebViewX5内核,内部页面重新定向加载异常,无法加载的问题处理方法最近做一个项目,加载h5。第一次加载页面正常,h5做了一次重新定向,结果页面就显示不出来了。最后发现,是因为混淆的问题。代码不混淆就正常,混淆后就不正常了。下载了混淆策略放到自己的混淆策略里面,加载就正常了。...原创 2018-06-15 17:26:33 · 7062 阅读 · 0 评论 -
Android 高德地图 实时动态控制显示定位小蓝点解决方案
场景:在地图页面,根据不同的场景动态控制是否显示定位小蓝点。问题:Android 高德地图 动态控制显示定位小蓝点解决方案:我们发现高德地图提供了响应的api来控制是否显示定位小蓝点。但是按照提供的方法设置完成之后,并不能实现实时动态控制是否显示小蓝点的效果。是否显示定位蓝点控制是否显示定位蓝点Java//方法自5.1.0版本后支持MyLocationStyle showMyL...原创 2019-08-27 16:40:16 · 4250 阅读 · 0 评论 -
Android 接入微信登录流程图 详细完整交互流程图
这里只提供微信接入流程图,其他的细节可参考官方文档或demo这里有一个官方参考资料:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=&lang=zh_CN...原创 2019-08-20 17:04:13 · 3982 阅读 · 0 评论 -
Android 广告图片 全屏图片适配方案的思路
场景:在启动页加载一个全屏广告图片,要适配不同的机型。问题:如何适配不同的机型?解决方法:不要做满屏的图片,最好图片内容居中,周围留上纯色,就可以适配所有屏幕。可以参考淘宝、京东等。...原创 2019-07-02 09:56:26 · 2098 阅读 · 2 评论 -
Android 一篇文章轻松搞懂什么是Callback回调
很多人刚接触Callback回调时应该是很懵的。今天通过这篇文章,让你轻松了解什么是Callback回调。回调:简单的来说,就是把你自己包含了电话、QQ、微信的通讯簿交给别人,别人就持有了你的通讯簿。当别人有你需要知道的事情的时候,通过相应的渠道电话、QQ或微信告诉你。这就是回调。回调的步骤只需4步:1.定义一个接口类,定义需要的方法。2.声明一个接口类对象,提供一个设置类对象的方法。...原创 2019-05-13 16:06:17 · 3049 阅读 · 0 评论 -
FileProvider使用中遇到IllegalArgumentException Failed to find configured root that contains解决方案
场景:使用FileProvider获取SD上文件的Uri(FileProvider.getUriForFile)获取相册的图片,升级应用获取apk文件。问题:报异常IllegalArgumentException Failed to find configured root that contains解决方法:使用FileProvider的时候,切记要在AndroidManifest.x...原创 2019-04-03 15:40:00 · 5956 阅读 · 0 评论 -
Android Toast全面屏适配 全屏显示效果 覆盖状态栏全屏显示 两种实现方式
要做一个全屏显示的Toast,用了网上找的方法给Toast添加如下属性toast.getView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);//设置Toast可以布局到系统状态栏的下面试了下,是有点效果,可以填充到状态栏。但是问题来了,全面屏顶部和底部都会留一个小缝隙不能覆盖。想了两种解决方案:第一用Al...原创 2019-03-15 18:10:20 · 2876 阅读 · 1 评论 -
Android PupopWindow适配全面屏 全屏显示覆盖状态栏 简单实用只需两步
开发中有一个需求弹出一个弹窗广告,背景需要半透明全屏显示,覆盖状态栏(见下图)。我选用了PupopWindow实现。然后设置了属性宽高为WindowManager.LayoutParams.MATCH_PARENT结果可想而知,根本无法全屏显示,状态栏部分无法遮盖。看网上有很多方法,都说需要自定义PopupWindow,我觉得实现一个全屏显示就需要自定义太麻烦了。就开始找查资料,找方法。最...原创 2019-03-15 10:29:13 · 8975 阅读 · 6 评论 -
如何清除Glide图片缓存
清除glide的缓存在进Activity时的onCreate()里执行缓存清理Glide.get(this).clearDiskCache();Glide.get(this).clearMemory();原创 2019-01-03 10:28:57 · 4569 阅读 · 0 评论 -
获取Android应用签名证书的SHA1、MD5、SHA256值,亲测简单有效
1.使用CMD(命令行窗口),进入签名文件所在的目录 例如:你的签名文件在c盘的key文件夹里面 你可以输入命令cd C:\key回车,进入到key文件夹目录2.输入命令:keytool -list -v -keystore debug.keystore(debug.keystore)是签名文件的名称 例如:你的签名文件名称为:qianming.keystore ...原创 2018-09-04 11:26:38 · 8698 阅读 · 2 评论 -
室内地图导航功能接入流程
https://www.ipalmap.com/ 图聚室内地图开放平台原创 2017-10-16 15:40:09 · 4159 阅读 · 2 评论 -
ViewPager中嵌套Fragment中的EditText设置requestFocus无法获取焦点的解决方法
最近开发任务中遇到一个问题,登录注册页面是放在一个页面中可以切换的,所以很自然想到了用TabLayout+ViewPager+Fragment实现,在登录页面有一个逻辑是,如果用户之前登录过,则获取之前登录的账号,设置到账号输入框,然后让密码输入框获取焦点弹出键盘。但是按照这样的逻辑写完之后,发现每次执行了密码输入框执行了requestFocus方法,但是无法获取焦点。焦点默认还是在账号框。这里给出原创 2017-08-04 11:22:22 · 3286 阅读 · 1 评论 -
Error:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:
Error:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException: 报这个错误,肯定是图片资源出现了问题,有可能图片格式不对,有可能.9图片的黑边不见了,把图片资源排查一下,基本可以解决问题。原创 2016-12-16 09:15:31 · 478 阅读 · 0 评论 -
Android Studio修改工程项目编码,修正运行程序乱码问题
修改,工程,系统编码 进入android studion主界面 第一步,依次点击File>settings 第二步,找到Editer>File Encodings .设置图中红色框中的编码方式,项目之前是用什么编码写的就改成什么编码格式,如果不知道,一般不是GBK就是UTF-8. 第三步,找到build.gradle(Module app),打开此文件,在里面添加这段代码 compileO原创 2016-11-17 16:42:34 · 5475 阅读 · 0 评论 -
文章标题
现在的软件基本都会做启动引导页,主要帮助客户快速了解软件的特点。所以这个技能是必备技能。 源码:http://download.csdn.net/detail/beibaokongming/9668879这是一个开源的控件,使用很简单,看demo很快就可以上手了。他是通过viewpager+fragment的形式实现的,但是效果很酷炫。 要想添加页面或者减少页面只需要创建或者删除fragment原创 2016-11-17 09:47:17 · 291 阅读 · 0 评论 -
安卓启动引导页,很有个性的安卓启动页 可以判断是不是第一次启动
现在的软件基本都会做启动引导页,主要帮助客户快速了解软件的特点。所以这个技能是必备技能。 源码:http://download.csdn.net/detail/beibaokongming/9668879这是一个开源的控件,使用很简单,看demo很快就可以上手了。他是通过viewpager+fragment的形式实现的,但是效果很酷炫。 要想添加页面或者减少页面只需要创建或者删除fragment原创 2016-10-31 17:20:24 · 1733 阅读 · 0 评论 -
简单两步实现安卓软件自动升级(自动升级工具类)
简单两步实现安卓软件自动升级(自动升级工具类) 今天讲一个安卓软件非常实用的自动升级功能,非常简单,简单到你觉得没意思。只需两步即可实现安卓软件自动升级。1.将下载的Dmeo中的UpdateManager这个类拷贝到你的程序中,将progress.xml布局文件拷贝到layout文件夹下。2.联网获取服务器端的版本,对比自己软件当前的版本,如果服务器端的软件版本大于当前手机中的原创 2016-08-20 09:42:36 · 2763 阅读 · 1 评论 -
安卓开发接入微信支付功能的详细步骤(手把手教你一步一步接入,适合小白)
微信支付开发步骤:首先去申请开通微信支付功能(亦可从网上找到申请开通的方法),这里不详细讲解了,自行百度或者按照微信提示操作,主要讲解接入过程。注册微信,主要的是得到app id和key。下面进入详细接入流程;1.到微信商户平台,下载安卓支付的Demo 下载地址:https://pay.weixin.qq.com2.将下载的demo的libs文件夹下的 libammsdk.原创 2016-08-18 18:59:21 · 2939 阅读 · 0 评论 -
ImageLoder如何加载本地图片 sd卡图片 网络图片 assets文件夹下的图片 contentprovider图片
只需要将url设置成以下格式即可String imageUri = "http://site.com/image.png"; // 网络图片String imageUri = "file:///mnt/sdcard/image.png"; // sd卡图片String imageUri = "content://media/external/audio/albumart原创 2016-06-07 18:12:32 · 2174 阅读 · 0 评论 -
简单三步,教你如何将Xutils3导入eclipse项目当中(附jar包下载地址)
先到这个地址下载需要的jar包:http://download.csdn.net/detail/beibaokongming/95583011.将下载到的压缩文件,解压后得到的jar包和armeabi这个文件夹,复制到项目的libs目录下。 2.右键单击项目选择BuildPath ->Configure Build Path,在弹出的对话框中,找到项目libs目录下的xutil原创 2016-06-24 11:29:07 · 1694 阅读 · 0 评论 -
viewPager+photoView实现图片轮播和手势缩放功能 支持手势缩放的imageView 如何实现相册左右滑动和手势缩放 如何让图片自适应控件大小 photoView如何使用(上)
很多朋友都可能遇到这这个问题,实现一个支持手势缩放的图片轮播功能。就像我们的手机相册一样。而且有时候还需要让图片拉伸自动充满全屏。 图片轮播我们自然而然,想到了viewPager+imageView来实现,但是想要实现手势缩放就遇到了很大的难度,imageView根本不支持缩放。 那么打造支持手势缩放的imageView那肯定就需要自定义了,网上...原创 2016-06-01 21:38:19 · 5721 阅读 · 1 评论 -
viewPager+photoView实现图片轮播和手势缩放功能,并且实现滑动到下一页后上一页缩放的图片会恢复到之前的默认状态(下)
在上篇文章中,https://blog.csdn.net/beibaokongming/article/details/51559279讲到了photoView和viewPager结合打造可以左右滑动的支持手势缩放的相册功能,但是还有一个问题没有解决,那就是当我们将当前页面的图片放大后,当我们滑动到下一页,然后滑回上一页之后,发现上一页的图片还是处于缩放的状态,而不是默认的状态,这不是我们想要的...原创 2016-06-04 10:57:18 · 4773 阅读 · 3 评论 -
导入他人androidstudio项目出现gradle不匹配等问题的解决办法(自己亲测)
今天新装了androidstudio2.3最新的环境,导入别人的androidstudio项目的时候出现了各种版本不匹配的问题,gradle下载太慢,卡死的问题。所以自己先下载了gradle离线版本,然后放在了androidstudio安装目录下的gradle文件夹下。接下来关键来了,先不要导入别人的项目,自己先在自己的环境下创建一个项目,并且编译跑起来,能跑起来证明我们的环境配置的没有问题了。然后原创 2017-03-08 11:31:01 · 3626 阅读 · 0 评论 -
androidstudio如何打渠道包,一个项目包含多个版本 如何选择一个版本打包
我们现在做的大型项目,通常都是一个项目里面包含多个渠道包,公共的部分写在main里面,其他包继承这些base类,进行扩展。 但是写了这么多包,我们怎么把某一个单独的渠道包发布成一个版本apk呢?点击androidstudio左侧右下角的buildVariants按钮,会弹出来一个渠道包选择配置框,然后在Module对应的app右边选择,对应配置文件,选择好后,直接运行软件就可以了。这就生成了一个渠原创 2017-03-08 16:58:31 · 1102 阅读 · 1 评论 -
Fragment轻松监听返回键/Fragment中的popupwindow响应返回键隐藏
现在的开发我们基本上都是一个主activity中放多个fragment,点击返回按钮的时候,直接退出主activity,但是我们在fragment中经常会弹出例如popupWindow这样的布局,用户一般点击返回按钮的时候是想让弹窗消失,而不是退出应用。如果你直接退出应用这样的用户体验就非常的不好,所以我们就需要在fragment中监听按钮的点击事件,做出对应的处理。 比较常见的场景: 在一个F原创 2017-07-25 14:25:51 · 1527 阅读 · 0 评论 -
BubbleSeekBar开源框架在andorid7.0无法适配的解决方案
我们经常会用到带气泡问题提示的拖动seekbar。这里有一个非常好用的自定义seekbar框架BubbleSeekBar开源框架:https://github.com/widegalaxy/BubbleSeekBar/tree/5ccf3e91f0cc7e8ac5c338ae8ca709c2324bef59但我在项目中使用的时候发现了一个问题,在android7.0系统上,竟然不能适配。想了很多解决原创 2017-04-24 16:52:14 · 3114 阅读 · 0 评论 -
andorid6.0以上系统,百度定位,首次动态获取权限后不自动定位解决方案
在项目中遇到了一个问题,应用在android6.0以上的系统首次安装,动态获取定位权限后,不会自动去定位,这个问题很好解决,用一个定时器,在动态获取权限1秒后去请求一次定位,这样就ok了。我这里用的是比较火的RxJava中的timer操作符定时:代码如下。 /** * 定时1s后,获取定位 */ private void waitTimeStartRequstLocati原创 2017-04-24 15:59:30 · 972 阅读 · 0 评论