![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
知识点
Gdeer
这个作者很懒,什么都没留下…
展开
-
详解 View 的构造函数
我们经常用到自定义 View,它有四个参数,但往往不太关心它们,等用到的时候就很容易混淆,今天来看看它们到底是什么意思。View( Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes ) AttributeSet attrs从 xml 中提取的 Attribute 集合,通过 context.obtainStyledAttributes 生成的 TypedA原创 2020-10-12 10:31:39 · 596 阅读 · 0 评论 -
java 基础:反射
理解反射:从一个对象获取到它的类信息。Class 类和 java.lang.reflect 类库一起对反射的概念进行了支持。一个类的信息主要包括属性、方法、构造器,对应 java.lang.reflect 类库中的 Field、Method、Constructor,通过 Class 类的 getFields()、getMethods()、getConstructors() 来获取。对于 F...原创 2018-10-21 22:10:19 · 180 阅读 · 0 评论 -
Activity 的 isFinishing()、isDestroy() 分析
结论:isFinishing() 用于判断 Activity 是否正在 finish。isDestroy() 用于判断 Activity 是否已经 destroy。isFinishing() 返回 true 后 isDestroy() 才会返回 true。isFinishing()如注释所说,isFinishing 可以用在 onPause 中判断,该 Activity 是单纯的 ...原创 2019-03-14 15:30:55 · 9697 阅读 · 0 评论 -
java 基础:多线程
一、什么是线程要说线程,先说进程,就像手机上的 App,每个 App 都有一个进程,它的所有操作都在这个进程里进行。线程是进程里处理任务的单位。通常一个进程有一个主线程,多个子线程。如一个浏览器里,界面的显示就是它的主线程,当我们开始下载一个东西,如果在主线程下载,用户就不得不等到下载完成后再进行别的操作,这时就要将下载放在子线程中进行。所以子线程,就是用来处理耗时任务的。1.1 线程的执...原创 2019-03-26 23:06:01 · 214 阅读 · 0 评论 -
Gradle 中的 all、each 的区别
官网 apiall:each:区别all 是 gradle 中 DomainObjectCollection 接口的方法。each 是 groovy 中 List、Map 等集合类的方法。它们的区别:1.all 会对集合内现有的元素和之后加入的元素,都执行给定的闭包操作。each 只会对集合内现有的元素执行给定的闭包操作。2.all 接收的闭包,可以直接访问集合内元素的属...原创 2019-05-01 22:22:50 · 3970 阅读 · 4 评论 -
对 FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_SINGLE_TOP 的理解
为了看得更清晰,以下使用代称newtask:FLAG_ACTIVITY_NEW_TASKcleartop:FLAG_ACTIVITY_CLEAR_TOPsingletop:FLAG_ACTIVITY_SINGLE_TOP文章目录default单独 singletop单独 cleartopcleartop + singletopnewtask单独 newtasknewtask + sin...原创 2019-04-28 10:37:59 · 3450 阅读 · 4 评论 -
类的简单名称、类全名、二进制名、全限定名、描述符
二进制名、全限定名,是一个东西。由于历史原因,class 文件结构中的二进制名格式,跟 java 语言规范中定义的二进制名格式有所不同。Java 语言规范中定义的二进制名格式,使用 . 作为分隔符。class 文件结构中的二进制名格式,使用 / 作为分隔符。例如,按照 Java 语言规范,Thread 的二进制名是 java.lang.Thread。但在 class 文件的描述符中使...原创 2019-05-29 09:40:19 · 4893 阅读 · 0 评论 -
ListActivity、LauncherActivity 的使用
有时我们想简单测试一些东西,用一个 demo 展示一个列表,如果从头用 listView、RecyclerView 来设置,会显得很繁琐。这时可以使用 ListActivity 来直接展示一个 List。class MyListActivity : ListActivity() { val data = listOf("今天", "明天", "后天") override fun...原创 2019-06-25 11:13:12 · 236 阅读 · 0 评论 -
Activity 切换时的生命周期
文章目录普通特殊特殊的特殊特殊的补充普通A Activity 启动 B Activity,再回退到 A:特殊A Activity 启动 B Activity,再回退到 AB 的 theme 设置了 true特殊的特殊A Activity 启动 B Activity,再回退到 AB 的 theme 设置了 trueA 启动时用的是 application.startAct...原创 2019-07-04 21:06:38 · 276 阅读 · 0 评论 -
为什么 xxhdpi 目录下的 1080 尺寸的图片加载出来不是 1080
发现在 xxhdpi 放置的一张 1080x1920 的图片,在手机上加载后,真实的尺寸不是 1080x1920。研究后发现xxhdpi 是为 dpi 480 的手机准备的。如果一个 dpi 440 的手机加载 xxhdpi 的图片。宽高都会缩放,倍数是 440/480。实例:原图是 580x850。加载一个宽高都是 wrap_content 的 ImageView。在 dpi ...原创 2019-07-31 22:31:57 · 489 阅读 · 0 评论 -
Android 中 .9 图的意义解析
解释左上的黑线代表可延展的部分左上没有黑线,是非法的图(之前遇到过,后来试的时候发现又不报错了,效果跟画满一条边一样)如果该图片只是作为背景,无需设置内容,则只设置左上的黑线即可右下的黑线代表内容区域(他们的交叉区域)右下没有黑线的时候,默认是左上的值右下有多条黑线,是非法的图报错:error: too many padding sections on right border所以...原创 2019-08-01 13:09:12 · 747 阅读 · 0 评论 -
ListView item 的 margin 没生效
文章目录结论原因普遍情况inflate 阶段addView 阶段ListViewinflate 阶段addView 阶段没传 parent传了 parent,parent 不是 listView传了 parent,parent 是 listview结论inflate(id, null)宽高、margin 都不生效inflate(id, parent, false)宽高生效,marg...原创 2019-08-23 13:50:59 · 579 阅读 · 0 评论 -
Android View 转 Bitmap(截图)的方法
两种方法fun View.toBitmap(viewWidth: Int, viewHeight: Int): Bitmap? { layout(0, 0, viewWidth, viewHeight) buildDrawingCache() return drawingCache}fun View.toBitmap2(): Bitmap? { var bi...原创 2019-08-22 23:26:39 · 567 阅读 · 0 评论 -
Bitmap 使用 Matix 进行缩放时 filter 参数的含义
方法:public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter) { ...}filter:是否对源 bitmap 执行滤波处理。只在 matrix 包含大于要转换的内容时应用。(感觉上好像是说在放大时才有效)滤...原创 2019-09-27 11:44:45 · 794 阅读 · 0 评论 -
./、../ 对应的文件目录
./:指到当前文件的父目录下寻找(默认)../:指到当前文件的父目录的父目录下寻找.../:没有 .../println file("gradle")println file("./gradle")println file("../gradle")println file("./../gradle")println file("../原创 2018-10-17 11:19:53 · 548 阅读 · 1 评论 -
gradle 里 def 方法为什么不能引用 def 的变量
为什么引用不到在 gradle 中,直接定义一个变量,再定义一个方法,在方法里里是不能引用到该变量的,但在一个闭包中就可以。def x = 1def fun() { println x }fun()android { println x }如上图所示,fun 无法引用 x,会报错。但 android 闭包中的 x 却能打印出来。这是为什么呢?由于不知道 gradle 编译...原创 2018-10-17 10:57:24 · 2653 阅读 · 0 评论 -
XPath 笔记
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点。xml 实例<?xml version="1.0" encoding="ISO-8859-1"?><!--comments--><bookstore><book> <title lang="en">Ha原创 2018-10-14 22:53:04 · 233 阅读 · 0 评论 -
LocationManager 可用的位置提供器
LocationManager本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦: Android 中一般有三种位置提供器可供选择: GPS_PROVIDER NETWORK_PROVIDER PASSIVE_PROVIDER原创 2015-11-27 23:03:44 · 1124 阅读 · 0 评论 -
Android 线程
1. Android 中线程的状态Android 中线程的状态主要有以下四种: Thread AsyncTask HandlerThread IntentService 1.1 ThreadThread 不必说,就是普通的线程,线程的作用主要是执行耗时任务。1.2 AsyncTask 封装了 Handler 和线程池的抽象类。4 个核心方法:onPreExecut原创 2016-11-03 17:19:34 · 315 阅读 · 0 评论 -
二分法
二分查找,严格递增时,low 指向第一个大于它的值,high 指向最后一个小于它的值。原创 2016-09-30 18:56:29 · 267 阅读 · 0 评论 -
NestedScrollView 中的 EditText 问题
在 NestedScrollView 中使用 EditText 会出现将标题栏顶出屏幕的问题。 解决方法:AndroidManifest 文件中<activity android:name=".MainActivity" android:windowSoftInputMode="adjustResize"></activity>另外注意在父容器 CoordinatorLayout原创 2017-03-18 09:57:40 · 2123 阅读 · 0 评论 -
LogCat 过长无法显示完全
log 过长无法显示完全原创 2017-04-04 09:56:21 · 1094 阅读 · 0 评论 -
Android values 文件的寻找顺序
android values 文件的寻找顺序在 720x1280 xhdpi 的机器上:values-xhdpi-720x1280(上面的 1080x1920 不会访问)values-xhdpi-480x800values-xhdpi-320x480(到底)values-xhvalues-xxhvalues-xxxh(到顶)values-hvalues-mvalues...原创 2018-03-25 18:55:36 · 1165 阅读 · 0 评论 -
Android 中的 ClassLoader
ClassLoaderClassLoader 是用来加载 class 的类,它是一个抽象类。通过一个类的二进制名,一个 classLoader 会尝试去定位或生成组成一个类需要的数据。一个典型的策略是把类名转化为文件名,然后从文件系统读取这个文件名的 class 文件。二进制名:&quot;java.lang.String&quot;&quot;javax.swing.JSpinner$DefaultEditor...原创 2018-04-29 18:26:43 · 497 阅读 · 0 评论 -
一个最简单的自定义 Gradle Task
Gradle脚本的执行的三个过程:初始化 分析有哪些module将要被构建,为每个module创建对应的 project实例。这个时候settings.gradle文件会被解析。配置:处理所有的模块的 build 脚本,处理依赖,属性等。这个时候每个模块的build.gradle文件会被解析并配置,这个时候会构建整个task的链表(这里的链表仅仅指存在依赖关系的task的集...原创 2018-06-25 00:00:19 · 1824 阅读 · 0 评论 -
Error: java.lang.SecurityException: install operation deny
在安装应用时,出现了这样的报错:06/19 13:23:47: Launching app$ adb push /Users/gdeer/emptytest/app/build/outputs/apk/app-debug.apk /data/local/tmp/com.gdeer.emptytest$ adb shell pm install -t -r &amp;quot;/data/local/tm...原创 2018-06-19 14:03:36 · 2100 阅读 · 0 评论 -
Android 获取 apk 签名信息
已知 keystore 文件(不一定是 keystore 后缀):keytool -list -v -keystore tianqi_key.key已知 apk 文件:1. 改为 zip 并解压2. 获取 META-INF 中的 CERT.RSA3. keytool -printcert -file CERT.RSA在名称为 mykeystore 的密码库生成别名为 myk...原创 2018-06-19 17:12:48 · 1605 阅读 · 0 评论 -
kotlin 笔记:Object 关键字
Object 关键字kotlin 中的 object 关键字用来创建一个对象,它的使用场景:对象声明伴生对象对象表达式对象声明对象声明用来创建单例。与类一样,一个对象的声明也可以包含属性、方法、初始化语句块等声明。唯一不同在于对象没有构造方法(主和从)。因为对象声明在定义的时候就立即创建了,不需要构造函数。可以在类外部,也可以在类内部生成单例对象,但不能在 fu...原创 2018-06-26 16:19:10 · 831 阅读 · 0 评论 -
kotlin 笔记:lambda 表达式
lambda 的语法 {x: Int, y: Int -&gt; x + y} 即,花括号包围着参数和函数体如果函数的最后一个参数是lambda,调用时可以将其放在圆括号外。如果函数的唯一一个参数是lambda,调用时可以省略圆括号。如果lambda的参数类型可以被推导出来,可以不用显示地指定。如果lambda只有一个参数,可简化为 it。val max...原创 2018-06-27 00:49:49 · 385 阅读 · 0 评论 -
Java 中打印 Exception 的方式汇总
e.getMessage(): exepct ‘[‘, but error, pos 1, json : sssse.getLocalizedMessage(): exepct ‘[‘, but error, pos 1, json : sssse.toString(): com.alibaba.fastjson.JSONException: exepc...原创 2018-06-20 13:19:14 · 1940 阅读 · 0 评论 -
去除继承ActionBarActivity的Activity中的ActionBar
去除继承ActionBarActivity的Activity中的ActionBar在android 中,新建的Activity 会继承 ActionBarActivity ,这时Activity 会自动生成ActionBar,我们想去掉它,可以这样做: 1.把styles.xml中修改parents parent="Theme.AppCompat.Light.DarkActionBar"变原创 2015-04-01 22:24:27 · 2237 阅读 · 0 评论