Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
mahozad committed Feb 10, 2024
1 parent b65c931 commit a196793
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,8 @@ import android.content.ContextWrapper
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Rect
import android.os.Build
import android.os.Handler
import android.os.Looper
import android.view.PixelCopy
import android.view.View
import android.view.ViewTreeObserver
import android.view.Window
import android.os.*
import android.view.*
import androidx.annotation.DoNotInline
import androidx.annotation.RequiresApi
import androidx.compose.foundation.background
Expand All @@ -25,10 +20,7 @@ import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ImageBitmap
import androidx.compose.ui.graphics.asImageBitmap
import androidx.compose.ui.platform.AbstractComposeView
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.ViewCompositionStrategy
import androidx.compose.ui.platform.ViewRootForTest
import androidx.compose.ui.platform.*
import androidx.compose.ui.semantics.SemanticsNode
import androidx.compose.ui.semantics.SemanticsProperties
import androidx.compose.ui.test.*
Expand All @@ -53,6 +45,7 @@ actual fun setContenttt(content: @Composable () -> Unit): Unit = TODO()
actual fun captureToImageeee(content: @Composable () -> Unit): ImageBitmap = TODO()

fun Context.captureToImageeee(comcon: CompositionContext, content: @Composable () -> Unit): ImageBitmap {
fun Activity.captureToImageeee(comcon: CompositionContext, content: @Composable () -> Unit): ImageBitmap {
//////////////////////////////////////////////////
//////////////////////////////////////////////////
//////////////////////////////////////////////////
Expand Down Expand Up @@ -89,10 +82,15 @@ fun Context.captureToImageeee(comcon: CompositionContext, content: @Composable (
// LocalView.current
// LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
val composeView = ComposeView(this)
composeView.setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
composeView.setParentCompositionContext(comcon /* OR, maybe, Recomposer(Dispatchers.Main) */)
composeView.setContent(content)
val recomposer = Recomposer(Dispatchers.Unconfined)
composeView.setParentCompositionContext(recomposer)
composeView.setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnLifecycleDestroyed(object : Lifecycle() {
override val currentState: State get() = State.RESUMED
override fun addObserver(observer: LifecycleObserver) {}
override fun removeObserver(observer: LifecycleObserver) {}
}))
composeView.createComposition()
composeView.setContent(content)
// composeView.setBackgroundColor(android.graphics.Color.BLUE)
composeView.measure(
View.MeasureSpec.makeMeasureSpec(300, View.MeasureSpec.EXACTLY),
Expand All @@ -104,6 +102,8 @@ fun Context.captureToImageeee(comcon: CompositionContext, content: @Composable (
composeView.measuredWidth,
composeView.measuredHeight
)
// this.setContentView(composeView)
// this.addContentView(composeView, ViewGroup.LayoutParams(0, 0))
@OptIn(InternalComposeUiApi::class)
composeView.showLayoutBounds = true
println("width: ${composeView.measuredWidth} height: ${composeView.measuredHeight}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
// https://stackoverflow.com/questions/73294041/crash-when-trying-to-measure-a-composeview-to-generate-a-bitmap-of-it
// https://stackoverflow.com/questions/70944722/composable-to-bitmap-without-displaying-it
// https://stackoverflow.com/questions/75461048/how-to-renderor-convert-a-composable-to-image-in-compose-desktop
// https://stackoverflow.com/questions/5604125/android-taking-screenshot-of-offscreen-page

/**
* The compose-multiplatform-core/compose/ui/ui-test-junit4 depends on compose-multiplatform-core/compose/ui/ui-test
Expand Down

0 comments on commit a196793

Please sign in to comment.