前言适配前台程序员必不可少的工作之一,且可能要花大量的时间精力。何为前台程序员,是面向用户的一端,包括前端、移动端、PC等等。何为适配,适配就是当我们的开发环境、运行环境等发生变化的时候,程序依然能稳健运行。而适配中最难为程序员的就是Android了,除了开发环境、运行环境等因素之外,因为Android开源的原因,还要适配各大厂商。。而适配条件之多,经常让Android程序员为之头疼。来看看相机、相册相关的适配历程:Android6权限适配Android7文件适配Android10/11存储适配ok,接下来以一个更换头像的小例
起源在targetSdkVersion为30的情况下,在Android11的小米10手机上运行,调用ToastUtil的时候闪退报错:nullcannotbecasttonon-nulltypeandroid.widget.LinearLayout且看已知条件:targetSdkVersion30Android11小米10文末附Android11适配手册定位问题ok,遇到问题,迅速定位。我在原有的Toast调用上重新封装了一下,即ToastUtil。所以很快就定位到问题所在了privatefuncreateToast(msg:Strin
效果修改系统屏幕亮度这种操作还是挺常见的,一般在多媒体开发中都多少会涉及到。emmm效果图好像看不出来变化。。不过不是很重要。。操作拆解上图中可以看到,分别有加减按钮和seekbar来控制亮度。后面会涉及到相关的事件。获取系统屏幕亮度/***获取系统屏幕亮度(0-255)*/privatefungetScreenBrightness():Int{try{returnSettings.System.getInt(this.contentResolver,Settings.System.SCREEN_BRIGHTNESS)}catch(e:SettingNot
1.效果MD风格的底部弹窗,比自定义dialog或popupwindow使用更简单,功能也更强大。其实细分来说,是BottomSheet、BottomSheetDialog、BottomSheetDialogFragment2.BottomSheet与主界面同层级关系,可以事件触发,如果有设置显示高度的话,也可以拉出来,且不会影响主界面的交互。XMLxmlversion="1.0"encoding="utf-8"?>androidx.coordinatorlayout.widget.CoordinatorLay
一、nginx配置用户认证首先需要安装apache,可以使用yuminstallhttpd安装;或者在其他机器创建好.htpasswd文件,拷贝到服务器;创建用户,并生成密码文件:/usr/local/apache2/bin/htpasswd-c/usr/local/nginx/conf/.htpasswd test //添加test用户,第一次添加时需要加-c参数,第二次添加时不需要-c参数;访问指定目录配置用户认证:在nginx的default配置文件中添加,红色的部分是指定在哪个目录设置用户认证。location /a/ { auth_basic "Auth";
前言适配前台程序员必不可少的工作之一,且可能要花大量的时间精力。何为前台程序员,是面向用户的一端,包括前端、移动端、PC等等。何为适配,适配就是当我们的开发环境、运行环境等发生变化的时候,程序依然能稳健运行。而适配中最难为程序员的就是Android了,除了开发环境、运行环境等因素之外,因为Android开源的原因,还要适配各大厂商。。而适配条件之多,经常让Android程序员为之头疼。来看看相机、相册相关的适配历程:Android6权限适配Android7文件适配Android10/11存储适配ok,接下来以一个更换头像的小例
起源在targetSdkVersion为30的情况下,在Android11的小米10手机上运行,调用ToastUtil的时候闪退报错:nullcannotbecasttonon-nulltypeandroid.widget.LinearLayout且看已知条件:targetSdkVersion30Android11小米10文末附Android11适配手册定位问题ok,遇到问题,迅速定位。我在原有的Toast调用上重新封装了一下,即ToastUtil。所以很快就定位到问题所在了privatefuncreateToast(msg:Strin
效果修改系统屏幕亮度这种操作还是挺常见的,一般在多媒体开发中都多少会涉及到。emmm效果图好像看不出来变化。。不过不是很重要。。操作拆解上图中可以看到,分别有加减按钮和seekbar来控制亮度。后面会涉及到相关的事件。获取系统屏幕亮度/***获取系统屏幕亮度(0-255)*/privatefungetScreenBrightness():Int{try{returnSettings.System.getInt(this.contentResolver,Settings.System.SCREEN_BRIGHTNESS)}catch(e:SettingNot
1.效果MD风格的底部弹窗,比自定义dialog或popupwindow使用更简单,功能也更强大。其实细分来说,是BottomSheet、BottomSheetDialog、BottomSheetDialogFragment2.BottomSheet与主界面同层级关系,可以事件触发,如果有设置显示高度的话,也可以拉出来,且不会影响主界面的交互。XMLxmlversion="1.0"encoding="utf-8"?>androidx.coordinatorlayout.widget.CoordinatorLay
一、nginx配置用户认证首先需要安装apache,可以使用yuminstallhttpd安装;或者在其他机器创建好.htpasswd文件,拷贝到服务器;创建用户,并生成密码文件:/usr/local/apache2/bin/htpasswd-c/usr/local/nginx/conf/.htpasswd test //添加test用户,第一次添加时需要加-c参数,第二次添加时不需要-c参数;访问指定目录配置用户认证:在nginx的default配置文件中添加,红色的部分是指定在哪个目录设置用户认证。location /a/ { auth_basic "Auth";