【问题标题】:Convert ConstraintLayout to image将 ConstraintLayout 转换为图像
【发布时间】:2019-08-06 16:59:30
【问题描述】:

我尝试捕获我的 constraintLayout 中所有元素的图像,然后将其保存到设备中。 我已经在我的 iOS 应用程序上完成了它,通过使用以下简单行将 UIView 捕获到图像:

let theImage = self.myView.asImage()

我可以在 Android Studio 中使用 Kotlin 做类似的事情吗?或者有没有其他布局/视图比 iOS 中的 uiView 更好的 constraintLayout?

【问题讨论】:

  • @leonardkraemer OP 要求在 Kotlin 中完成此操作
  • 哦,对了。有人可以添加 how-to-convert-java-to-kotlin 指南吗?

标签: android-studio kotlin


【解决方案1】:

https://stackoverflow.com/a/34272518/4265739的无耻复制和自动to-kotlin转换(将java代码直接粘贴到Android Studio中的kotlin文件中)

private fun createBitmapFromView(context: Context, view: View): Bitmap {
    val displayMetrics = DisplayMetrics()
    (context as Activity).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics)
    view.setLayoutParams(LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT))

    view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels)
    view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels)
    view.buildDrawingCache()
    val bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888)

    val canvas = Canvas(bitmap)
    view.draw(canvas)

    return bitmap
}

您可以使用上面的函数创建一个包含ConstraintLayout 内容的位图。事实上,它应该适用于任何View

ConstraintLayout 是在 android 中推荐使用的布局。我不知道它是否像 IOS 中的 iuView 那样工作,但它是 Android 的做事方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2021-12-17
    • 2015-12-31
    • 2011-02-01
    相关资源
    最近更新 更多