我有一个imageView和几个textViews我的应用程序允许用户在用户想要的imageView的坐标(imageView不是全屏)上拖动textViews 。
换句话说,该应用程序允许用户向用户图像添加多个字幕,并将该图像和字幕转换为单个图像并将其存储在用户设备上。
据一个计算器的回答,我可以一个刚刚转换的TextView文本到bitamp
id有没有办法从用户在kotlin中创建的带有字幕的最终图像中截取屏幕截图?
这是我的代码:
@Throws(IOException::class)
fun foo(text: String) {
val textPaint = object : Paint() {
init {
setColor(Color.WHITE)
setTextAlign(Align.CENTER)
setTextSize(20f)
setAntiAlias(true)
}
}
val bounds = Rect()
textPaint.getTextBounds(text, 0, text.length, bounds)
val bmp = Bitmap.createBitmap(mImgBanner.getWidth(), mImgBanner.getHeight(), Bitmap.Config.RGB_565) //use ARGB_8888 for better quality
val canvas = Canvas(bmp)
canvas.drawText(text, 0, 20f, textPaint)
val path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/image.png"
val stream = FileOutputStream(path)
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream)
bmp.recycle()
stream.close()
}
在xml布局中添加所需的视图可对其进行充气,并获取包含您的视图的父布局的屏幕快照。
屏幕截图代码:
fun takeScreenshotOfView(view: View, height: Int, width: Int): Bitmap {
val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
val bgDrawable = view.background
if (bgDrawable != null) {
bgDrawable.draw(canvas)
} else {
canvas.drawColor(Color.WHITE)
}
view.draw(canvas)
return bitmap
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句