int[2] ; view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标 view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标...location [0]--->x坐标,location [1]--->y坐标 getLocationOnScreen 计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度...)//获取在当前屏幕内的绝对坐标 getLocationInWindow 计算该视图在它所在的widnow的坐标x,y值,获取在整个窗口内的绝对坐标 getLeft , getTop, getBottom...,getRight 这一组是获取相对在它父亲里的坐标 如果在Activity的OnCreate()事件输出那些参数,是全为0,要等UI控件都加载完了才能获取到这些。...在onWindowFocusChanged(boolean hasFocus)中获取为好 即覆写Activity的onWindowFocusChanged(boolean hasFocus)方法 XXX_Activity
Kotlin的一个协程可以理解为是运行在线程上的一个执行任务并且该任务可以在不同的线程间切换,一个线程可以同时运行多个协程。...CoroutineScope(Dispatchers.IO).launch {} 是在指定的 CoroutineScope 中启动一个协程,通常情况下应该手动创建 CoroutineScope 对象,并确保在合适的时机取消该...比如:网络请求,数据库操作,文件操作等 Main:UI调度器,只有在UI编程平台上有意义,用于更新UI,例如Android中的主线程 Unconfined:非受限调度器,无所谓调度器,当前协程可以运行在任意线程上...最常见的,网络请求在IO线程,而页面更新在主线程。 Kotlin给我们提供了一个顶层函数withContext用于改变协程的上下文并执行一段代码。...Composable 中创建一个记住的(remembered)协程作用域。
但是,我一起认为编程最重要的是编程思想,不管 Java 也好,Kotlin 也好,都是为了实现功能的。而本文的主要目的是介绍在 Android 如何创建 PDF 文件。...而在实现的过程中,大家可以见识到一些常见的 Kotlin 用法,特别的地方我会稍微讲解一下。比如难于理解的 lambda 表达式我有在代码中运用,然后文中会做比较详细的解释。...而 PdfRenderer 是在 API 21 的版本中添加的,同样要注意。 创建 PDF 文件 先看看官网的文档,上面有介绍基于 SDK 怎么样来创建 PDF 文件的流程。...如果是在 kotlin 中编写这样一个接口却不能这样子,这个地方我被坑了好久。...在 Kotlin 中可以对这类进行优化,它能够将这类接口直接用一个函数替换。
io.reactivex.rxjava2:rxandroid:2.0.2' implementation 'io.reactivex.rxjava2:rxjava:2.1.10' Github地址 使用 延迟执行 Kotlin...TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe { } 多线程 常用的方式是分线程中处理数据...,主线程中使用数据生成页面 Kotlin Observable .create> { source -> var treeList
Kotlin 真的是一门美丽的开发语言,她拥有的一些很棒的特性使 Android 开发变成的有趣和令人兴奋。...但是,它虽然简单,却非常有用,让我们来看一些在 Android 开发中的例子。 你可以在官方文档中了解更多关于委托属性的内容。...我们把这个类型设为非空的,并且在不能读取时抛出了异常,这让我们可以在 Fragment 中获取非空的值,避免了空值检查。...为了让事情变得有趣些,我们尝试一种稍微不同的方式。这次我们将会使用对象表达式并给SharedPreferences创建一个扩展函数。...总结 我们看来一些在 Android 开发中使用 Kotlin 委托属性的例子。当然了,你也可以用别的方式来使用它。 这篇文章的目标是展示委托属性是多么强大,以及我们可以用它做什么。
在应用程序设置中进行某些更改时,我在recreate的onActivityResult中调用MainActivity。重新创建后,不调用onResume。...最佳答案 在onResume()之前调用OnActivityResult()。...您可以做的是在OnActivityResult()中设置一个标志,您可以在onResume()中检入,如果该标志为true,则可以重新创建活动。...您实际上可以做的是完成活动并开始相同的活动,而不是重新创建活动。您将获得相同的效果。
无独有偶,谷歌近日也宣布推出两个 Kotlin 免费在线课程,正如苹果将 iOS 开发人员从 Objective-C 转移到 Swift,谷歌也在将 Android 开发者从 Java 转移到 Kotlin...该在线教程是谷歌与 Udacity (一家在线教育机构,教学语言为英语)合作共同推出的,课程为视频形式,设有两门课程: Kotlin Bootcamp 在本套教程中,用户将学习如何使用 Kotlin 编程...Building Android apps in Kotlin 这套课程是针对如何使用 Kotlin 进行 Android 开发,从 “Hello World”开始由浅入深,本课程从在一个屏幕上构建基本的交互式用户界面开始...在每一课中,你将使用一个实际架构的应用程序并实现关键特性。 在这个过程中,你将了解 Android Jetpack 组件,如数据库空间、后台处理工作管理器、导航组件等等。...这门课程教授主要的 Kotlin 特性,比如 cooutines,以帮助学习者更快、更简洁地编写应用程序代码。 总的来说,整套课程将创建超过 10 个应用程序。 ? ? ?
Android Jetpack组件 Compose 使用 前言 正文 一、创建Compose项目 1. setContent 2....排列效果 3. gradle 二、布局 ① 布局填充 ② 大小设置 ③ 图片设置 ④ 空间占位 三、列表 ① 显示列表 ② item点击事件 四、源码 前言 一直以来,在Android 中构建UI页面是一个很耗时的操作...,我尽可能的说明详细一些,其实Compose出来已经有一段时间了,在新的AS更新后,对于Compose开发更加友好的,下面来创建一个项目吧。...这里我把这里的代码注释掉,那么你在AS中就无法预览了,现在我们就了解了MainActivity中的基本构建了,那么下面我们再来观察一下gradle。...这个演示效果在预览中是看不出来的,我们用真机来看一下: 从上面这个图来看,你会发现点击有默认的水波纹效果,这一点很好,还有就是点击的区域是包裹你当前这个item的内容,而不是占满屏幕宽度。
无独有偶,谷歌近日也宣布推出两个 Kotlin 免费在线课程,正如苹果将 iOS 开发人员从 Object-C 转移到 Swift,谷歌也在将 Android 开发者从 Java 转移到 Kotlin。...该在线教程是谷歌与 Udacity (一家在线教育机构,教学语言为英语)合作共同推出的,课程为视频形式,设有两门课程: Kotlin Bootcamp 在本套教程中,用户将学习如何使用 Kotlin 编程...Building Android apps in Kotlin 这套课程是针对如何使用 Kotlin 进行 Android 开发,从 “Hello World”开始由浅入深,本课程从在一个屏幕上构建基本的交互式用户界面开始...在每一课中,你将使用一个实际架构的应用程序并实现关键特性。 在这个过程中,你将了解 Android Jetpack 组件,如数据库空间、后台处理工作管理器、导航组件等等。...这门课程教授主要的 Kotlin 特性,比如 cooutines,以帮助学习者更快、更简洁地编写应用程序代码。 总的来说,整套课程将创建超过 10 个应用程序。
值得在您的应用中尝试的新功能 这里简要介绍一下这个开发者预览版中几项有趣的新功能,同时我们希望大家尝试后提供反馈。...凹口屏幕的支持 现在应用可以充分利用最新的全面屏设备来展示内容。我们在 Android 平台加入了对凹口屏幕的支持,並提供 API 供您使用,从而管理内容展示方式。...本功能可以在应用中无缝工作,系统会管理状态栏的高度从而将您的内容与裁切区域分开。如果您拥有重要的沉浸式内容,则还可以使用新的 API 查看裁切形状并创建全屏布局。...Kotlin 优化 Kotlin 以经成为一流的 Android 开发语言。 如果您还未尝试,还在等什么呢?...如果您最近没有尝试过模拟器,请务必试试。您会发现它速度非常快,可以在 6 秒内启动,使用方便,甚至可以模拟下一代屏幕。例如,长屏幕和带摄像头裁切区域的异型全面屏。
在Android终端上进行推理,意味着终端需要加载TensorFlow的二进制库和模型。...最后,Google还同步了目前在将Android NN API加到Android Framework中,并且很快会进行开源。这意味着Android终端很快会成为一个完整智能体。...我比较赞同Fei-Fei Li访谈中的一句话“机器的价值就是人的价值”,让机器为人类创建更多价值吧,AI时代已经来临。 10:30-11:30 Introduction to Kotlin ?...这部分演讲者直接打开Android Studio进行功能展示,Kotlin在代码简洁和安全性上来说,确实比Java优秀不少。...有了这两个数据,就可以在VR中绘制物品成像了。 ? ? 第二部分主要是结合经验,给出一些VR设计过程中的经验值,来创建出清晰可用的屏幕界面,来让VR使用者体验起来更舒适。
首先我们应该了解下android绘制原理与布局加载原理。 android绘制原理 Android的屏幕刷新中涉及到最重要的三个概念(为便于理解,这里先做简单介绍)。...所以,在屏幕刷新中,Android系统引入了双缓冲机制。...这样做的后果就是手机屏幕仍然显示原先的图像,这就是我们常常说的掉帧。 布局加载原理 由上面可知,导致掉帧的原因是CPU无法在16.6ms内完成绘制数据的计算。...} } } } } 如上所示,Anko使用kotlin DSL实现布局,它比我们使用Java动态创建布局方便很多,主要是更简洁,它和拥有xml创建布局的层级关系...手机与10.0手机上分别做了测试,在我们的项目中布局加载耗时并不很长,同时它们在整个页面可见过程中,占得比例也并不高。
创建 NDK 项目 II . NDK 项目 相关配置 III . NDK 中获取 Android 版本号 IV . 使用 __system_property_get 可获取的参数 I ....创建支持 NDK 的项目 : 当前最新的 Android Studio 支持直接创建 支持 C/C++ 的带 NDK 配置的项目 ; 如果向现有项目加入 C/C++ 代码 , 首先要创建 cpp 代码文件..., 然后创建 CMakeList.txt 编译脚本 , 最后在 build.gradle 中配置该编译脚本 , 这里不再详细描述 ; 在菜单栏中选择 File -> New -> New Project...* 该 C++ 代码文件在 src/main/cpp 目录下 */ public native String stringFromJNI(); // 在应用开启的时候加载...参数字符串来源 : 上述的参数字符串都定义在 Android 系统中的 build.prop 配置文件中 ; 4.
更为重要的是, 在 2017 年的 Goofle I/O 上,也宣布 kotlin 为 Android 的官方开发语言。...那我们在 Flutter 中,通过什么来判断我要加载的是 ListView 还是 webView 呢? 实现 ps:如果电脑前的同学没有安装 Flutter,建议先安装。...打开我们 app 目录下的 MainActivity,添加如下代码: [1240] 以上代码,就是创建了一个宽高均充满屏幕的 FlutterView,可以将 FlutterView 看作为展示 Flutter...修改后的 Activity 代码如下: [1240] 看 Flutter 端接收的代码: [1240] [1240] 注意:在创建 EventChannel 对象的时候,传入的 name, 一定要和你在原生中传入的...判断不同的 route ,加载不同的界面 我们在 MainActivity 加载 FlutterView 时,有传入一个参数 “route1”。
Activity不重建 在Android中,如果希望WebView页面在设备旋转时不销毁并重新加载,可以通过以下步骤实现: 在AndroidManifest.xml文件中,对应的Activity中添加如下配置...: android:configChanges="orientation|screenSize" 这将告诉系统在设备旋转或屏幕尺寸改变时不重新创建Activity。...例如,如果希望Activity在设备旋转和屏幕尺寸变化时都不被销毁和重新创建,可以这样配置: android:configChanges="orientation|screenSize" 这样,当设备的方向或屏幕尺寸发生变化时...在该方法中,你可以选择不执行任何操作,或者手动调整布局等。...Kotlin中 override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged
展开时,其关键特征便是所谓的屏幕连贯性。例如,在折叠的小屏幕上开启一段视频,接着您可以坐下并展开此设备,在一块像平板电脑这么大尺寸的屏幕上畅享美妙的沉浸式体验。...上周,JetBrains 发布了最新版本的 Kotlin,即 Kotlin 1.3,该版本具有新的语言特性和 API、修复了一些问题并改进了性能: 内联类允许您创建无开销的类型 (除非对其进行装箱操作)...Navigation 架构组件提供了使用单个 Activity 在应用中实现 Android 导航原则的简化方法。...凭借动态功能模块,您可按需加载任何应用功能,而非仅限于安装期间。您无需保留那些仅在每个单个设备上使用一次的庞大功能;在应用发起请求时,您可对动态功能进行动态安装和卸载。...在 Android Studio 3.3 测试版中,您现在可以构建一个启动免安装应用的软件包。
在 Android Studio 4.0 中,新的 Motion Editor 让这个 API 用起来更方便。它提供了用于创建、编辑和预览 MotionLayout 动画的强大界面。...更多信息参考: http://d.android.com/studio/write/motion-editor 在 Motion 编辑器中创建、编辑和预览动画 升级的 Layout Inspector...使用 Layout Validation(布局验证)窗口,你可以同时在多个不同的屏幕和配置上预览布局,轻松确保你的应用兼容各种屏幕尺寸。...在 Android Studio 4.0 中,CPU 记录现在与 Profiler 主时间轴分开显示,并按组分类以简化分析过程。你可以上下移动组,或者在组中拖放项目以定制界面。...新版本还尝试通过提高应用程序的兼容性来使更新速度更快、更流畅,使测试更轻松。
Android Studio 4.0 中新加入的 Motion Editor 让开发者能在其界面中创建、编辑和预览 MotionLayout 动画,从而更轻松地驾驭这个 API。...Layout Validation image.png 在为多种硬件配置、屏幕尺寸和分辨率开发应用时,您需要确保在 UI 中做出的每一处修改都能在各个屏幕上完美展现。...通过 Layout Validation 窗口,您可以同时预览 UI 在不同屏幕、不同配置中的呈现结果,从而轻松让应用适配好这些设备。...本次更新还带来了更多值得尝试的改进,前往开发者官网了解更多。...在创建 R8 的规则文件时,Android Studio 现在提供了智能编辑器功能,包括语法高亮、补全以及错误检查等。
文章目录 前言 一、IntelliJ IDEA 中创建 Java / Kotlin 工程 二、准备 Java 和 Kotlin 代码 三、编译在 PC 上可执行的 Java / Kotlin JAR 包...四、使用 dx 工具打包 DEX 字节码文件 五、打包在 Android 中执行的 dex 文件 六、Android 中使用 dalvikvm 命令执行 dex 文件 前言 参考 【IntelliJ...IDEA】导出可执行 JAR 包 博客 , 导出可执行 JAR 包 ; 一、IntelliJ IDEA 中创建 Java / Kotlin 工程 ---- 在 IntelliJ IDEA 中创建 Java...PC 上可执行的 Java / Kotlin JAR 包 ---- 右键点击 工程 根目录 , 在菜单中选择 " Open Module Settings " , 在 " Project Structure...dex 文件 ---- 在 PC 中的可执行文件 , 打包成 dex 文件无法在 Android 中执行 ; 在 Android 中使用 dalvikvm 执行的 dex 文件 , 只能是使用 class
使用 Bitmap 创建一个指定颜色的纯色图像,通过 Canvas 绘制设置为设备的壁纸。 异常处理部分确保在设置壁纸失败时抛出明确的错误信息,用于调试和问题定位。...} return false; } } 2.6.1 代码解析 gestureDetector:初始化手势检测器绑定 GestureListener,监听用户在屏幕上的手势操作...它通过监听用户在屏幕上的触摸事件,根据手势类型调用相应的回调方法。...基本流程 创建 GestureDetector 实例:在 MainActivity 中,创建一个 GestureDetector 实例,自定义的 GestureListener 传入。...处理手势事件:在 GestureListener 中,根据检测到的手势(如滑动方向、速度)触发相应的逻辑(如壁纸切换)。
领取专属 10元无门槛券
手把手带您无忧上云