![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员
文章平均质量分 89
m0_66070663
这个作者很懒,什么都没留下…
展开
-
DayNight Mode实现Android夜间模式,android音频播放器
资源细分 首先我们看一看一个界面需要控制哪些颜色: 而除了上述基本需要控制的窗口颜色外,布局中受影响的还会有一些文本和图像。一般的,白天/夜间模式涉及到的显示状态的切换最基本改变影响就是这些文本、icon图标、整体的背景颜色等。 首先我们在colors.xml中设置好这些颜色,代码如下: 白天模式: <?xml version="1.0" encoding="utf-8"?> @android:color/black @android:color/white #FF9600 #FF96原创 2022-01-07 21:07:16 · 278 阅读 · 0 评论 -
Dart语法——看这一篇就够了,互联网行业“中年”危机
var myarea = _area(2,3); print(myarea); print(area2(2)); print(area3(2, height: 1, judge: false)); } num _area(num width, num height) { return width * height; } // 使用@required来标注必须参数 num area1({@required num width, @required num height}) { return width * h原创 2022-01-07 21:04:26 · 1047 阅读 · 0 评论 -
Code Review&编程习惯,2021最新Android算法相关面试大全
凡是会抛出异常的地方都进行捕获,你可以在catch中处理异常,如果不想处理则throw这个异常,由调用者去try-catch处理: 涉及到资源关闭的记得在finally中关闭资源: 另外不要在循环体中捕获异常,放在最外层,以提升性能。 2. 空指针,千万不要理所当然的以为一个对象不会为空,在使用一个变量之前一定要进行判空处理,做好充分的容错处理。 3. 数组越界,使用数组、List之前检查索引和长度。 4. 魔鬼数字:直接写在代码里的数字,一定要用常量符号代替。 5. 对于可以复用的部分,提取成共.原创 2022-01-07 21:03:01 · 786 阅读 · 0 评论 -
ButterKnife实现原理,Android插件化主流框架和实现原理
可用注解和反射实现 拿BindView为例:首先创建BindView注解,参数为默认 int value() @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) @interface BindView { int value(); } 在相应的类中进行引用: @BindView(R.id.text1) TextView textView1; @BindView(R.id.text2) TextView textView2;原创 2022-01-07 21:01:36 · 769 阅读 · 0 评论 -
BaseUrlManager 的设计初衷主要用于开发时,有多个环境需要打包 APK 的场景
implementation ‘com.king.base:base-url-manager:1.0.0’ Lvy: 如果 Gradle 出现 implementation 失败的情况,可以在 Project 的 build.gradle 里面添加如下:(也可以使用上面的 GitPack 来 implementation) allprojects { repositories { maven { url ‘https://dl.bintray.com/jenly/maven’ } } } 引入的库:原创 2022-01-07 21:00:11 · 754 阅读 · 0 评论 -
AsyncTask源码分析,安卓开发面试书籍
public final AsyncTask<Params, Progress, Result> execute(Params… params) { return executeOnExecutor(sDefaultExecutor, params); } public final AsyncTask<Params, Progress, Result> executeOnExecutor(Executor exec, Params… params) { if (mStatus !=原创 2022-01-07 20:57:22 · 605 阅读 · 0 评论 -
AnnotationProcessor 处理器不工作怎么定位?
Set supported = new HashSet(); supported.add(Bridge.class.getCanonicalName()); return supported; } @Override public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) { System.out.println(“TestAnnotationProcessor proce原创 2022-01-02 23:16:21 · 187 阅读 · 0 评论 -
Android面试题之Listview篇
4.上拉加载和下拉刷新怎么实现? 实现OnScrollListener 接口重写onScrollStateChanged 和onScroll方法,使用onscroll方法实现”滑动“后处理检查是否还有新的记录,如果有,调用 addFooterView,添加记录到adapter, adapter调notifyDataSetChanged 更新数据;如果没有记录了,把自定义的mFooterView去掉。使用onScrollStateChanged可以检测是否滚到最后一行且停止滚动然后执行加载。 5.Lis.原创 2022-01-02 23:13:31 · 184 阅读 · 0 评论