1+ package io.github.markyav.drawbox.android
2+
3+ import android.os.Bundle
4+ import androidx.activity.compose.setContent
5+ import androidx.appcompat.app.AppCompatActivity
6+ import androidx.compose.foundation.Image
7+ import androidx.compose.foundation.border
8+ import androidx.compose.foundation.layout.*
9+ import androidx.compose.material.MaterialTheme
10+ import androidx.compose.material.Text
11+ import androidx.compose.runtime.collectAsState
12+ import androidx.compose.runtime.getValue
13+ import androidx.compose.runtime.remember
14+ import androidx.compose.runtime.rememberCoroutineScope
15+ import androidx.compose.ui.Modifier
16+ import androidx.compose.ui.graphics.Color
17+ import androidx.compose.ui.unit.dp
18+ import io.github.markyav.drawbox.box.DrawBox
19+ import io.github.markyav.drawbox.controller.DrawBoxBackground
20+ import io.github.markyav.drawbox.controller.DrawBoxSubscription
21+ import io.github.markyav.drawbox.controller.DrawController
22+
23+ class MainActivity : AppCompatActivity () {
24+ override fun onCreate (savedInstanceState : Bundle ? ) {
25+ super .onCreate(savedInstanceState)
26+ setContent {
27+ MaterialTheme {
28+ val controller = remember { DrawController () }
29+ val coroutineSubscription = rememberCoroutineScope()
30+ val bitmap by controller.getBitmap(250 , coroutineSubscription, DrawBoxSubscription .DynamicUpdate ).collectAsState()
31+ val bitmapFinishDrawingUpdate by controller.getBitmap(250 , coroutineSubscription, DrawBoxSubscription .FinishDrawingUpdate ).collectAsState()
32+
33+ controller.background = DrawBoxBackground .ColourBackground (color = Color .Blue , alpha = 0.15f )
34+ controller.canvasOpacity = 0.5f
35+
36+ Row {
37+ DrawBox (
38+ controller = controller,
39+ modifier = Modifier
40+ .fillMaxHeight()
41+ .aspectRatio(1f )
42+ .padding(100 .dp)
43+ .border(width = 1 .dp, color = Color .Blue ),
44+ )
45+ Column {
46+ Text (" DynamicUpdate:" )
47+ Spacer (modifier = Modifier .height(10 .dp))
48+ Image (
49+ bitmap,
50+ contentDescription = " drawn bitmap" ,
51+ modifier = Modifier .size(200 .dp).border(width = 1 .dp, color = Color .Red ),
52+ )
53+
54+ Spacer (modifier = Modifier .height(50 .dp))
55+
56+ Text (" FinishDrawingUpdate:" )
57+ Spacer (modifier = Modifier .height(10 .dp))
58+ Image (
59+ bitmapFinishDrawingUpdate,
60+ contentDescription = " drawn bitmap" ,
61+ modifier = Modifier .size(200 .dp).border(width = 1 .dp, color = Color .Red ),
62+ )
63+ }
64+ }
65+ }
66+ }
67+ }
68+ }
0 commit comments