我有一个imageView和几个textView我的应用程序允许用户在imageView的每个坐标上拖动textView**(imageView不是全屏)。
换句话说,这个应用程序允许用户添加几个标题到用户图像,并将该图像和标题转换为一个单一图像,并存储在用户设备上。
根据其中一个stackOverFlow响应,我只能将一个textView**文本转换为位放大器
有没有办法从最终的图像截图,用户已经创建了它的标题在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()
}
2条答案
按热度按时间atmip9wb1#
在xml布局中添加所需的视图,并对包含您的视图的父布局进行截图。
截图代码:
avwztpqn2#
您也可以使用扩展名View.drawToBitmap()。它将返回一个位图