自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 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 257

原创 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 1040

原创 Code Review&编程习惯,2021最新Android算法相关面试大全

凡是会抛出异常的地方都进行捕获,你可以在catch中处理异常,如果不想处理则throw这个异常,由调用者去try-catch处理:涉及到资源关闭的记得在finally中关闭资源:另外不要在循环体中捕获异常,放在最外层,以提升性能。2. 空指针,千万不要理所当然的以为一个对象不会为空,在使用一个变量之前一定要进行判空处理,做好充分的容错处理。3. 数组越界,使用数组、List之前检查索引和长度。4. 魔鬼数字:直接写在代码里的数字,一定要用常量符号代替。5. 对于可以复用的部分,提取成共.

2022-01-07 21:03:01 777

原创 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 735

原创 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 744

原创 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 595

原创 AnnotationProcessor 处理器不工作怎么定位?

Set supported = new HashSet();supported.add(Bridge.class.getCanonicalName());return supported;}@Overridepublic boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) {System.out.println(“TestAnnotationProcessor proce

2022-01-02 23:16:21 178

原创 Android面试题之Listview篇

4.上拉加载和下拉刷新怎么实现?实现OnScrollListener 接口重写onScrollStateChanged 和onScroll方法,使用onscroll方法实现”滑动“后处理检查是否还有新的记录,如果有,调用 addFooterView,添加记录到adapter, adapter调notifyDataSetChanged 更新数据;如果没有记录了,把自定义的mFooterView去掉。使用onScrollStateChanged可以检测是否滚到最后一行且停止滚动然后执行加载。5.Lis.

2022-01-02 23:13:31 176

空空如也

空空如也

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

TA关注的人

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