

使用简单代码在 Android Jetpack Compose 中开发绘图应用
source link: https://www.infoq.cn/article/W9tdH01cJQYrrGuSC8Jy
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用 Jetpack Compose 触控功能在 Canvas 上画出图形。
如果大家有意学习 Android,不妨先从妙趣横生的绘图应用起步。在今天的文章中,我们将共同了解如何使用最新 Android Jetpack Compose 开发一款绘图应用。

设置 Jetpack Compose 的先决条件
目前 Jetpack Compose 仍处于 Alpha 测试阶段,因此大家必须下载 Android Studio 4.2(Canary 版)并完成以下设置才能使用。
在 Jetpack Compose 中绘图
绘图应用的开发流程非常简单,只需要三步:
-
Canvas 绘图画布
-
触控检测(按压与触控移动)
-
根据触控检测绘制路径
设置 Canvas
与传统 Android 开发有所不同,这一次我们不再使用布局。因此,我们不需要构建自定义视图并将其绘制到 Canvas 之上。
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Canvas(modifier = Modifier.fillMaxSize()) { // Drawing happens here } }}
复制代码
在这里,我们只需要通过 fillMaxSize() 设置 Modifier,确保其占用应用程序中的整个空间。
触控检测
要检测触控,我们通常需要在 Android 中的自定义视图内覆盖 onTouchEvent 函数。
override fun onTouchEvent(event: MotionEvent?): Boolean { when (event?.action) { MotionEvent.ACTION_DOWN -> { } MotionEvent.ACTION_MOVE -> { } MotionEvent.ACTION_UP -> { } else -> return false } invalidate() return true}
复制代码
在 Jetpack Compose 当中,我们使用 pointerInteropFilter 修饰符以检测触摸操作。
Canvas(modifier = Modifier .fillMaxSize() .pointerInteropFilter { when (it.action) { MotionEvent.ACTION_DOWN -> { } MotionEvent.ACTION_MOVE -> { } MotionEvent.ACTION_UP -> { } else -> false } true })
复制代码
Recommend
-
51
-
36
During the last Google I/O the Android team officially announced a brand new Jetpack library named Compose. Trust me when I say this library could change the way developers write Android applications in the future. So let's review it and write d...
-
50
3 things to know about Jetpack Compose from Android Dev Summit 2019 ...
-
41
原创|Android Jetpack Compose 最全上手指南在今年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明式的UI框架,随着了今年安卓和苹果两大移动平台相继推出自己的UI开发框...
-
11
Exploring the future of Android UI with Jetpack Compose with Gurupreet SinghExploring the future of Android UI with Jetpack Compose with Gurupreet Singh - YouTube Back Skip navigation
-
15
Jetpack Compose 是 Android 的新一代工具包,用于构建原生界面。它使您能够借助强大的工具和直观的 Kotlin API,以...
-
30
Build an Android Chat app with Jetpack Compose
-
11
我参加了Jetpack Compose开发挑战赛
-
10
Android 声明式UI框架Jetpack Compose与React Hook的统一性58同城 Android工程师Jetpack Compose是Google在2019 I/O大会上公布的声明式UI框架。近期Google也在不断的宣传Compose,...
-
4
新一代声明式 UI 框架,Android Jetpack Compose 开发应用指南发布于 今天 14:31 前言Jetpack Compose 是 Android 推出的新...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK