Android
文章平均质量分 59
Android
喂_balabala
这个作者很懒,什么都没留下…
展开
-
Android-前后台切换监听
中判断界面数量是否有新增和是否正在销毁,就可区分当前是被遮住了还是在销毁界面还是退到后台了。自然就是监听切换回前台的函数了。3、退到后台后,此时当前。原创 2024-07-26 12:37:19 · 425 阅读 · 0 评论 -
Android手机拍照或从本地相册选取图片设置头像-高版本适配
GitHub传送门新增FileProvider图片裁减需要的临时权限Android 10只能读取自己APP目录下的文件可以添加requestLegacyExternalStorage解决原创 2024-07-04 16:31:23 · 553 阅读 · 0 评论 -
Android-悬浮窗口
在Android系统中,如果应用需要弹出一个悬浮窗口,就需要申请一项特殊权限在Android O之前的系统中申请了该权限后,再给对应的window设置悬浮窗口就可以显示出来。但是在Android O的系统中,google规定申请悬浮窗口才能显示出来,“TYPE_APPLICATION_OVERLAY”是重点。另外说一下:申请权限不能使用 requestPermissions 方法。原创 2024-06-27 17:42:45 · 413 阅读 · 0 评论 -
org.jetbrains.kotlin.kapt3.base.KaptContext cannot access class Context
升级Android studio后报错。原创 2024-06-20 11:09:25 · 622 阅读 · 0 评论 -
Android本地浏览器打开网址
本地浏览器打开网址。原创 2023-06-04 00:14:54 · 825 阅读 · 0 评论 -
自定义dialog
重写样式、重写show方法解决宽度高度无法填充的问题@Override public void show() { super.show(); /** * 设置宽度全屏,放在show后面 */ LayoutParams layoutParams = getWindow().getAttributes();...原创 2018-07-19 11:03:43 · 296 阅读 · 0 评论 -
WebView-Android与H5交互、设置cookie、post请求、滑动监听、点击监听、关闭音频视频
mWbRealize.loadUrl("http://652857502.scene.eqxiu.com/s/vknb0n8W?eqrcode=1&from=singlemessage&isappinstalled=0");//支持javascriptweb.getSettings().setJ原创 2018-06-15 09:49:15 · 2364 阅读 · 0 评论 -
SeekBar使用
thumb也可以做一个选择器<SeekBar android:thumbOffset="0dp" android:focusable="true" android:id="@+id/sb_calculator" android:thumb="@drawable/seekbar_water_b原创 2018-04-16 16:32:57 · 446 阅读 · 0 评论 -
SurfaceView 之俄罗斯方块、打飞机、遥感赛车
https://www.jianshu.com/p/91e9fee635c1SurfaceViewSurfaceView可以直接在子线程中更新ui,显示画面流畅。因为SurfaceView提供双缓冲机制。通过两个线程交替在两块内存缓冲区绘制画面。直接绘制不通过点击(直接在activity的oncreate方法中调用要创建监听器,只有surfaceview创建后才能创建画布,不能在su...原创 2018-08-29 18:49:02 · 1371 阅读 · 0 评论 -
android微信分享图片踩坑之旅
分享图片代码如下bitmap.recycle() 资源被回收了,所以每次分享的bitmap必须是重新创建出来的 /** * 微信图片分享 * * @param shareType {@link SendMessageToWX.Req#WXSceneSession} 分享给微信好友 * {@link SendMessageToW...原创 2019-07-29 15:11:19 · 2532 阅读 · 0 评论 -
Android重新打开APP应用程序或activity后fragment 重叠问题
问题发生的场景:屏幕旋转activity被强杀后重启应用在后台被挤出后重新打开。。。产生原因:FragmentState没有保存隐藏还是显示这个状态,当生命周期又走一次的时候又创建了一次fragment,所以导致重叠解决方法1:(太low,不推荐使用。不能恢复重启前的界面)直接在包含Fragment的Activity中复写onSaveInstanceState...原创 2018-04-11 10:14:44 · 2040 阅读 · 2 评论 -
XML布局嵌套多少层会导致OOM
查看setContentView源码可以看到,最终调用的是rInflate。首先遍历所有的节点,假如是普通的view就直接获取,是Viewgroup的话会调用rInflateChildren,发现在rInflateChildren里面调用的还是rInflate,是一个递归调用。而且没有退出条件,就会导致不断地进行压栈。类似这种情况,JVM 实际会抛出 StackOverFlowError;当然,如果 JVM 试图去扩展栈空间的的时候失败,则会抛出 OutOfMemoryError。栈最多存放多少栈帧原创 2020-12-10 17:51:07 · 1442 阅读 · 4 评论 -
java.lang.IllegalStateException: Fragment already added
问题描述在DialogFragment中重复调用show(manager: FragmentManager?, tag: String?)导致崩溃,提示IllegalStateException: Fragment already added并且manager?.findFragmentByTag(tag)找到的fragment是空,isAdded也是false解决方案方案一:override fun show(manager: FragmentManager?, tag: String?) {原创 2020-11-27 10:58:06 · 687 阅读 · 0 评论 -
彻底解决软键盘遮挡DialogFragment
问题描述点击edittext,弹出软键盘,dialog略微上移,edittext和下面的按钮还是被遮挡,上移的部分被切割解决方案设置dialog的inputMode,取消软键盘弹出自动上移监听软键盘弹出事件,动态设置dialog的paddingBottomoverride fun init() { dialog?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING)原创 2020-11-27 16:21:54 · 1824 阅读 · 1 评论 -
自定义view哪个构造方法是不能不重写的
在setContentView源码可以看到普通view的创建方法是createViewFromTag。找到view = createView(context, name, null, attrs);点进去看到根节点的view是通过反射获取的,然后获取根节点的构造方法clazz.getConstructor(mConstructorSignature)mConstructorSignature是两个参数的数组。所以自定义View一定要重写两个参数的构造函数/*** Creates a view fr原创 2020-12-10 17:57:05 · 340 阅读 · 1 评论 -
AtomicInteger原理,CAS 机制,乐观锁,ABA问题
示例val atomicInteger = AtomicInteger(10)atomicInteger.decrementAndGet()// atomicInteger-- 从静态代码块可以看到,在类初始化的时候拿到值的偏移量(获取偏移量后直接操作内存,从内存取值,不通过缓冲区)。在构造函数保存初始值,并且是volatile修饰public class AtomicInteger extends Number implements java.io.Serializable { pr原创 2020-12-18 15:22:26 · 214 阅读 · 0 评论 -
自定义注解继承AbstractProcessor,编译时不执行process方法?
问题描述:继承AbstractProcessor并重写init、process、getSupportedAnnotationTypes方法,编译时init和getSupportedAnnotationTypes都执行了,就是不执行process方法我项目的原因:把注解用在kotlin文件上了,只能在java文件中使用(困扰了几天,一直没往这方面想!!针对kotlin文件可能要换种写法,暂未研究,知道的同学可以留言)并且自动生成的代码路径因项目不同可能不同,比如我的是在app/build/gener原创 2020-06-28 23:31:21 · 2104 阅读 · 1 评论 -
AndroidStudio上传本地项目到码云(OSChina)
1、安装Git2、注册oschina账户、设置ssh等等在码云创建仓库打开本地项目,添加Git管理选你想要管理的目录,一般选项目最外层此时所有的文件变成红色右键项目名称点击git -> add然后所有文件变绿色点击提交然后推送复制你刚才在码云创建的地址,复制HTTPS的定义...原创 2018-04-11 15:53:01 · 526 阅读 · 0 评论 -
Android使用javax.mail发送crash邮件给自己
首先要手动添加三个jar包 mail、activation、additionnal需要翻墙下载链接:https://code.google.com/archive/p/javamail-android/downloads 百度云盘链接:https://pan.baidu.com/s/1vheC2JQKBfc35PXCb6OK_g复制到libs目录下后对jar包点击右键 –> a...原创 2018-04-23 16:31:30 · 5620 阅读 · 0 评论 -
Android界面全屏适配7.0、动态修改状态栏颜色、浅色状态栏深色字体
在需要置顶的界面添加主题TopTheme为了适配要创建多个value文件夹,名称不能错styles.xml<!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><!--&a原创 2018-05-02 15:26:56 · 2710 阅读 · 0 评论 -
Android加载大图片OOM、图片压缩
图像:一个一个像素点构成。所有不同的颜色像素点构成一幅完整图像。位图表示图像的方法:记录一幅图像中所有像素点(pixels)信息图像(位图)的深度:表示一个像素点用多少个bit位 单色位图:用1bit描述一个像素点信息。256色位图:用8bits描述一个像素点信息24位位图:用24bits描述一个像素点信息view.getWidth获取的是像素px加载大图片产生OOM...原创 2018-06-04 15:34:07 · 897 阅读 · 0 评论 -
排序算法
https://www.jianshu.com/p/40366c82c69f@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int[] ran...原创 2018-07-30 17:15:47 · 127 阅读 · 0 评论 -
Android手机拍照或从本地相册选取图片设置头像。适配小米、华为、7.0
传送门 https://github.com/jiaweizeng/BalaPortrait 设置头像通常有两种方式:1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。2,让用户启动手机的相机拍照,拍完照片后裁剪,然后作为头像。代码如下 MainActivity.Java文件:package portrait.bala.portrait;import...原创 2018-04-11 10:27:23 · 9502 阅读 · 1 评论