Android原创
暴风战斧
言宜慢,性宜善
展开
-
Android:ImageView图片展示(宽度铺满,高度自定义)
1、普通情况:宽度铺满,高度有图片高度决定<ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:adjustViewBounds="true" android:scaleType="fitXY" />2、图片高度超过一屏的情...原创 2020-03-10 10:50:41 · 2973 阅读 · 1 评论 -
Android录音功能(仿微信)
提要:需求是开发类似微信发语音的功能,没有语音转文字。网上看了一些代码,不能拿来直接用,部分代码逻辑有问题,所以想把自己的代码贴出来,仅供参考。功能:a、设置最大录音时长和录音倒计时(为了方便测试,最大时长设置为15秒,开始倒计时设置为7秒)b、在录音之前检查录音和存储权限原创 2019-11-14 15:43:41 · 958 阅读 · 2 评论 -
Android可伸缩布局FlexboxLayout结合RecycleView的使用
感谢火龙裸先生对FlexboxLayout的详细解释,附上GitHub地址1、添加依赖:GitHub的官方说明中写的很清楚如果你用了AndroidX,就使用1.1.0,否则使用1.0.0implementation'com.google.android:flexbox:1.0.0'2、使用FlexboxLayoutManager代替LinearLayoutManagerFle...原创 2019-07-30 18:15:15 · 2354 阅读 · 0 评论 -
RecycleView嵌套
1、NestedScrollView嵌套RecycleView:一般情况下使用RecycleView添加固定的头部,需要在Adapter中配置addHeader功能。当然,也可以用嵌套的方式解决添加Header的需求,而且再加上下拉刷新和上拉加载功能。嵌套滑动冲突解决方案:recycleView.setNestedScrollingEnabled(false);//默认为true...原创 2019-07-26 14:59:25 · 337 阅读 · 0 评论 -
Android8.0静态广播适配
项目中使用静态广播,遇到收不到消息的问题,最终发现问题:Android4.4、6.0、7.0正常接收,到Android8.0的系统之后,发现接收不到,于是看了谷歌API文档,发现做了限制。附上地址。大致的意思是:如果应用注册为接收广播,则在每次发送广播时,应用的接收器都会消耗资源。 如果多个应用注册为接收基于系统事件的广播,则会引发问题:触发广播的系统事件会导致所有应用快速地连续消耗资源,从而...原创 2019-07-31 18:28:18 · 544 阅读 · 0 评论 -
Android8.0-启动Service遇到的问题
1、在android8.0之后调用startService(service);异常信息:java.lang.IllegalStateException: Not allowed to start service Intent { cmp=***.SYGMessageService }: app is in background uid UidRecord{970b1b8 u0a198 TPS...原创 2019-08-15 15:13:51 · 2133 阅读 · 1 评论 -
AndroidStudio3.5 xml文件格式化后布局错乱
Android Studio 3.5中,xml文件格式化后,布局错乱解决方案:File—>Settings—>Editor—>Code Style—>XML—>set from—>predefined style—>Android—>Apply—>ok...原创 2019-08-27 10:55:28 · 776 阅读 · 0 评论 -
Android RecycleView+DataBinding+ObservableList 屏幕闪一下的问题
在项目中使用RecycleView作为数据展示列表,并使用DataBinding做RecycleView的数据绑定,其中使用到了ObservableList,当ObservableList发生变化时,调用了ObservableList的addOnListChangedCallback监听,然后在监听中做适配器的notifyDataSetChanged()。问题描述:当刷新数据的时候,会先用Ob...原创 2019-08-28 15:02:30 · 1227 阅读 · 0 评论 -
Android通知栏,点击唤醒APP,跳转到指定Activity,终极方案
这个功能基本上每个app都会需要,希望能帮到你。1、接收消息:接收推送的消息,一般有两种:自己的推送服务和第三方推送服务。不管是哪一种,都会按照app的需求接收到不同类型的消息,然后在需要弹notification的地方通知。这是句废话2、弹出notification:此时,需要指定一个PendingIntent,如果用户在app内部或是点击手机home键退到后台,此时Activit...原创 2019-08-30 10:27:54 · 6606 阅读 · 0 评论 -
android:实现点击两次退出程序
主界面中重写dispatchKeyEvent方法:获取返回按钮点击事件; 记录一次点击事件发生时间,第二次点击的时候和第一次时间取差;@Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { if (event.g...原创 2019-09-05 10:20:32 · 175 阅读 · 0 评论 -
Android-CountDownTimer打造多功能倒数计数器
项目中一般都会有验证码倒数计时器的功能,毫无疑问,利用CountDownTimer实现最简单实用。import android.os.CountDownTimer;/** * 功能:公共倒计时类 */public class FCountDownTimer extends CountDownTimer { private OnCountDownTimerListener c...原创 2019-08-02 17:10:54 · 364 阅读 · 0 评论 -
Android异常-解决方法记录
1、在AndroidStudio升级到3.4.1,SDK升级到28以后,遇到了分包问题* 异常ClassNotFoundException: Didn't find class "***" on path: DexPathList/-1.apk* 问题描述:在Android4.4手机上遇到的问题,APK安装成功后,APP一打开就直接奔溃,Android6.0以上手机启动没问题* 原因:程...原创 2019-07-17 11:36:01 · 328 阅读 · 0 评论 -
android:AndroidManifest中的package重命名
1、如图,点击右上角的设置按钮,并取消红框中的选定。2、修改包名选中所要修改包的节点 右键后选中->Refactor->Rename 在弹窗里输入要修改成什么名字,确认 在弹窗里选择 修改package3、修改build.gradle和AndroidManifest文件中的package名称修改当前Module的build.gradle文件中的applicati...原创 2018-12-18 17:16:52 · 5425 阅读 · 0 评论 -
阿里云移动推送:Maven库快速集成
阿里云移动推送快速入门 在Project根目录下build.gradle文件中配置maven库URL: buildscript { repositories { jcenter() // 阿里云推送 maven { url 'http://maven.aliyun.com/nexus/content/rep...原创 2019-05-22 10:57:52 · 1439 阅读 · 0 评论 -
SmartRefreshLayout:使用笔记
SmartRefreshLayout刷新组件github地址1、BaseApplication中做全局配置// TODO: 全局一次性配置下拉刷新组件默认属性 static { //启用矢量图兼容 AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); //设置全局默认配置(优先级最低,会被其他设置覆盖) ...原创 2019-05-22 11:12:02 · 769 阅读 · 0 评论 -
安卓SDK升级遇到的问题
安卓系统版本与SDK的对应关系1、android8.0遇到的问题:Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation原因:谷歌在安卓8.0版本时为了支持全面屏,增加了限制:如果是透明的Activity,则不能固定它的方向,因为它的...原创 2019-06-03 17:08:15 · 547 阅读 · 0 评论 -
安卓Gradle升级遇到的问题
Android Studio升级到3.4.1的同时,Gradle也升了级,Android Gradle Plugin Version为3.4.1,GradleVersion为5.1.1,同时也有很多地方需要更新。1、依赖指令也有了变更,之前的compile变为了implement和api。api指令:完全等同于compile指令,没区implementation指令:该指令的依赖隐藏...原创 2019-06-04 14:33:10 · 403 阅读 · 0 评论 -
码云创建远程依赖库
1、项目的build.gradle下添加插件buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.4.1' // 添加Gitee远程依赖插...原创 2019-06-04 17:03:09 · 786 阅读 · 0 评论