Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8c22aad

Browse files
update Tutorial6_39_1GraphicsLayer1
1 parent 35509fb commit 8c22aad

File tree

1 file changed

+56
-2
lines changed

1 file changed

+56
-2
lines changed

‎Tutorial1-1Basics/src/main/java/com/smarttoolfactory/tutorial1_1basics/chapter6_graphics/Tutorial6_39_1GraphicsLayer1.kt

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,29 @@
11
package com.smarttoolfactory.tutorial1_1basics.chapter6_graphics
22

33
import android.graphics.Bitmap
4+
import android.os.Build
5+
import androidx.annotation.RequiresApi
46
import androidx.compose.animation.core.Animatable
57
import androidx.compose.animation.core.LinearEasing
68
import androidx.compose.animation.core.tween
79
import androidx.compose.foundation.Canvas
810
import androidx.compose.foundation.Image
11+
import androidx.compose.foundation.background
912
import androidx.compose.foundation.border
1013
import androidx.compose.foundation.clickable
1114
import androidx.compose.foundation.gestures.detectTapGestures
1215
import androidx.compose.foundation.layout.Arrangement
16+
import androidx.compose.foundation.layout.Box
1317
import androidx.compose.foundation.layout.Column
1418
import androidx.compose.foundation.layout.Row
19+
import androidx.compose.foundation.layout.Spacer
1520
import androidx.compose.foundation.layout.aspectRatio
1621
import androidx.compose.foundation.layout.fillMaxSize
1722
import androidx.compose.foundation.layout.fillMaxWidth
23+
import androidx.compose.foundation.layout.height
1824
import androidx.compose.foundation.layout.padding
1925
import androidx.compose.foundation.layout.size
26+
import androidx.compose.foundation.lazy.LazyColumn
2027
import androidx.compose.foundation.rememberScrollState
2128
import androidx.compose.foundation.shape.RoundedCornerShape
2229
import androidx.compose.foundation.verticalScroll
@@ -32,6 +39,7 @@ import androidx.compose.runtime.remember
3239
import androidx.compose.runtime.rememberCoroutineScope
3340
import androidx.compose.runtime.setValue
3441
import androidx.compose.ui.Modifier
42+
import androidx.compose.ui.draw.clipToBounds
3543
import androidx.compose.ui.draw.drawWithCache
3644
import androidx.compose.ui.draw.drawWithContent
3745
import androidx.compose.ui.draw.shadow
@@ -56,12 +64,58 @@ import androidx.compose.ui.unit.dp
5664
import androidx.compose.ui.unit.sp
5765
import com.smarttoolfactory.tutorial1_1basics.R
5866
import com.smarttoolfactory.tutorial1_1basics.chapter2_material_widgets.CheckBoxWithTextRippleFullRow
67+
import com.smarttoolfactory.tutorial1_1basics.ui.backgroundColor
5968
import kotlinx.coroutines.launch
6069
import kotlin.random.Random
6170

71+
@RequiresApi(Build.VERSION_CODES.S)
6272
@Preview
6373
@Composable
64-
fun GraphicsLayerToImageBitmapSample() {
74+
private fun GraphicsLayerSample() {
75+
val graphicsLayer = rememberGraphicsLayer()
76+
77+
Column {
78+
Canvas(
79+
Modifier.fillMaxWidth()
80+
.border(2.dp, Color.Red)
81+
.clipToBounds()
82+
.aspectRatio(4 / 3f)
83+
) {
84+
drawLayer(graphicsLayer)
85+
}
86+
87+
Spacer(Modifier.height(16.dp))
88+
89+
LazyColumn(
90+
modifier = Modifier
91+
.border(2.dp, Color.Green)
92+
.background(backgroundColor)
93+
.fillMaxSize()
94+
.drawWithContent {
95+
// 🔥Without this LazyColumn does not draw its content
96+
drawContent()
97+
graphicsLayer.record {
98+
this@drawWithContent.drawContent()
99+
}
100+
},
101+
verticalArrangement = Arrangement.spacedBy(8.dp)
102+
) {
103+
items(100) {
104+
105+
Box(
106+
modifier = Modifier.fillMaxWidth()
107+
.background(Color.White, RoundedCornerShape(16.dp)).padding(16.dp)
108+
) {
109+
androidx.compose.material3.Text("Row $it", fontSize = 22.sp)
110+
}
111+
}
112+
}
113+
}
114+
}
115+
116+
@Preview
117+
@Composable
118+
private fun GraphicsLayerToImageBitmapSample() {
65119

66120
val coroutineScope = rememberCoroutineScope()
67121
val graphicsLayer = rememberGraphicsLayer()
@@ -474,7 +528,7 @@ fun InversePixelsSample() {
474528
)
475529
}
476530

477-
Text(
531+
Text(
478532
text = "Color Filtered",
479533
fontSize = 34.sp,
480534
modifier = Modifier.padding(vertical = 16.dp)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /