不支持onCustumView方法,去掉即可
6.button上的英文默认为大写
android:textAllCaps=“false”
7.vivo上收到push后打不开指定的页面(根本就没反应)
系统会自动弹出,但是进入设置打开即可。
8.TextView显示不全
TextView使用WrapContent,lines=1但是内容显示不全
只能显示在屏幕内的部分,在屏幕外的部分,在属性动画拉出来看的时候就没有。
(这种问题发生在自定义跑马灯控件时)
public static int getTextViewLength(TextView view, String text) {
TextPaint paint = view.getPaint();
int textLength = (int) Layout.getDesiredWidth(text, 0, text.length(), paint);
return textLength;
}
然后给TextView设置宽度。
9. No Activity found to handle Intent { act=android.intent.action.VIEW_DOWNLOADS flg=0x10000000 }
三星 SM-C7000(C7) 6.0.1的系统就会出现在这个问题
if(intent.resolve(context.getPackageManager))!=null){
…
}
使用隐式intent进行startActivity时,最好加上该种判断和try catch,因为保不准哪种机型就出问题了
10.设置dialog边角
getWindow().setBackgroundDrawableResource(R.drawable.widget_dialog_round_corner);
11.三星机型报错E/rsC++(16241): RS CPP error: Blur radius out of 0-25 pixel bound
大意就是TextView的shadowRadius不能大于25,是xml代码中的问题,改小shadowRadius即可。
包括button下的部分模糊的情况也是该问题导致的。
12.分享链接至微信无法显示链接的缩略图
友盟分享链接如果内容中带有红包字样,那么图片会失效显示不出来(分享的主体倒是可以自己看到)
13.小米手机上的App使用浏览器打开尾缀带apk的地址无法正常下载安装
阿里云、应用宝的地址是会被拦截到使用小米手机系统自带的下载器进行下载安装,而这个下载器会默认使用迅雷下载组件,阿里云的地址下载完毕后点击下载完成的push会显示文件无法识别(而应用宝的地址能正常安装),小米系及华为应用的下载地址以及非.apk结尾的地址则会按照正常流程跳入浏览器进行下载。关闭小米手机上的迅雷下载组件的功能后,则可以通过点击push正常安装,不会出现文件无法识别的问题。
所以解决这个问题的很简单,把下载地址换成非apk结尾的地址即可。
14.桌面图标不更换的原因
android:roundIcon=“@mipmap/logo”
application中这个属性也要设置
15.优化打开应用白屏问题
白屏的原因是系统本身启动是需要时间的(背景默认就是白色)。
一般做法:
设置Theme
针对具体的activity:如果一个activity中既要显示全屏的启动图,也要等到内容加载完毕后显示最新内容(非全屏),那么就应该对相关方法的进行判断设置:
private void setFullScreenEnable(boolean isEnable) {
if (isEnable) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //隐藏状态栏
} else {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //显示状态栏
}
}
如果在含有Webview的页面中,则可以分别在onCreate方法和onpageFinished的回调中进行设置即可。
特殊情况:如果整个页面是加载的H5,即便使用了上面的设置,还是会有白屏一闪而过的情景。这是H5页面本身渲染导致的,那么目前的处理方法是针对启动页做个延时dismiss的效果,这样就遮盖了白屏一闪而过的瞬间:
fullLoadingView.postDelayed(new Runnable() {//需要做下延迟,否则会出现页面一瞬间白屏的情况(应该是页面渲染H5的原因)
@Override
public void run() {
fullLoadingView.setVisibility(View.GONE);
setFullScreenEnable(false);
}
}, 300);
16.打开外部应用时,多个页面被调起
B应用打开A应用的cActivity时,A应用的其它Activity也会被打开(之前存在的,A应用一直在后台)
这是taskAffinity的缘故,因为共用了同一个任务栈,所以在manifest文件中设置另外一个任务栈即可:
android:taskAffinity=“.payAct”
17.获取webview的bitmap
根据得到网页的高度来设置webview的高度。同时h5做好适配,等比缩放宽高。与此同时可能出现,获取bitmap信息有空白的ui内容,这时候要做延迟获取,因为onPageFinished方法只是拉取了代码,并不表示页面渲染完毕。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后相关架构及资料领取方式:
点击我的GitHub免费领取获取往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。
容对你有帮助,可以添加下面V无偿领取!(备注Android)**
[外链图片转存中…(img-qYrCDJjI-1710824234399)]
最后相关架构及资料领取方式:
点击我的GitHub免费领取获取往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。