自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yechaoa

好记性不如烂笔头

  • 博客(8)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android 11适配指南之系统相机拍照、打开相册

前言适配前台程序员必不可少的工作之一,且可能要花大量的时间精力。何为前台程序员,是面向用户的一端,包括前端、移动端、PC等等。何为适配,适配就是当我们的开发环境、运行环境等发生变化的时候,程序依然能稳健运行。而适配中最难为程序员的就是Android了,除了开发环境、运行环境等因素之外,因为Android开源的原因,还要适配各大厂商。。而适配条件之多,经常让Android程序员为之头疼。来看看相机、相册相关的适配历程:Android 6 权限适配Android 7 文件适配Android

2021-01-28 17:33:25 11584 7

原创 Android 11适配指南之Toast解析

起源在targetSdkVersion为30的情况下,在Android 11的小米10的手机上运行,调用ToastUtil的时候闪退报错:null cannot be cast to non-null type android.widget.LinearLayout为什么说的这么详细呢,因为这些条件都是必须的:targetSdkVersion 30Android 11小米10同样的targetSdkVersion,在Android 11的华为P30 Pro上运行确实正常的,为什么呢,根据

2021-01-26 20:05:37 5919 3

原创 Android 自定义View之随机数验证码(仿写鸿洋)

前言本文面向自定义view新手,但是希望你最好有一定的理论知识,或基础概念,有的地方可能会一笔带过并不会细讲,细讲篇幅就太长了。本文仿写自鸿洋的自定义View (一),尽管过去了将近快7年之久,我觉得依然有学习价值。效果自定义View分类简单介绍一下自定义View分类:组合控件,继承自已有的layout,比如LinearLayout,然后通过LayoutInflater引入布局,然后处理相关事件,这种方式的好处在于,不需要过度关注view内部的绘制机制,而且扩展性也很强。继承自现有的系

2021-01-21 12:33:21 1021 1

原创 Jetpack之Room的使用,结合Flow

本文主要还是参考官方文档,然后以保存搜索历史为例操作一波。准备工作Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。依赖如需在应用中使用Room,请将以下依赖项添加到应用的 build.gradle文件。dependencies { def room_version = "2.2.5" implementation "androidx.room:room-runtime:$room_version" kapt.

2021-01-16 17:49:18 1161

原创 【解决问题的思路】its super classes have no public methods with the @Subscribe annotation

在打release包的时候遇到了这个问题,算是比较常见,记一下解决思路。本文介绍了出现这个问题的原因,以及出现问题时我的建议和我的思路,着急的可以直接看解决方案。异常Subscriber class xxx and its super classes have no public methods with the @Subscribe annotation遇到异常不要慌,其实已经提示的很明显了,指定了具体的class,且明确告诉你这个类没有@Subscribe注解。原因但其实知道了问题后,可能

2021-01-16 14:09:47 5627 2

原创 Android MediaPlayer音频播放器详解

效果音频播放,是比较常见或常用的功能,比如音乐播放器、新闻播报、听书等等,而恰巧如果你想自定义一个音频播放器的话,本文一定对你有帮助!常用方法start() 开始播放pause() 暂停播放stop() 停止播放prepare() 资源准备prepareAsync() 异步准备,不阻塞UI线程seekTo(int msec) 定位到指定位置,单位毫秒isLooping 是否循环播放isPlaying 播放状态duration 总时长currentPosition 当前位置rel

2021-01-06 20:48:32 5875 2

原创 Android 修改系统音量及监听

效果修改系统音量这种操作还是挺常见的,一般在多媒体开发中都多少会涉及到。常用方法获取音频管理器mAudioManager = this.getSystemService(Context.AUDIO_SERVICE) as AudioManager获取媒体音量最大值mMaxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)获取系统当前媒体音量mCurrentVolume = mAudioManager.

2021-01-05 19:25:27 5418

原创 Android 修改系统屏幕亮度及监听

效果修改系统屏幕亮度这种操作还是挺常见的,一般在多媒体开发中都多少会涉及到。emmm 效果图好像看不出来变化。。不过不是很重要。。操作拆解上图中可以看到,分别有加减按钮和seekbar来控制亮度。后面会涉及到相关的事件。获取系统屏幕亮度 /** * 获取系统屏幕亮度(0-255) */ private fun getScreenBrightness(): Int { try { return Settings.Sy

2021-01-05 16:46:46 5755 5

so文件(全平台)so

so文件(全平台),so文件(全平台),so文件(全平台),so文件(全平台),so文件(全平台),so文件(全平台),

2020-08-13

代码版本控制工具

TortoiseSVN TortoiseGit

2016-12-19

空空如也

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

TA关注的人

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