उत्तर @NandanKumarSingh https://stackoverflow.com/a/39965170/5279156 काम करता है, लेकिन मैंने कोड में फैब के साथ कुछ बदलाव किए हैं (xml नहीं क्योंकि वे वर्ग विधियों में ओवरराइट हो जाएंगे)
fab.setTextBitmap("ANDROID", 100f, Color.WHITE)
fab.scaleType = ImageView.ScaleType.CENTER
fab.adjustViewBounds = false
जहां समान कार्यक्षमता के साथ वर्ग के setTextBitmap
लिए एक विस्तार है, ImageView
लेकिन यह मल्टीलेन टेक्स्ट का समर्थन करता है
fun ImageView.setTextBitmap(text: String, textSize: Float, textColor: Int) {
val paint = Paint(Paint.ANTI_ALIAS_FLAG)
paint.textSize = textSize
paint.color = textColor
paint.textAlign = Paint.Align.LEFT
val lines = text.split("\n")
var maxWidth = 0
for (line in lines) {
val width = paint.measureText(line).toInt()
if (width > maxWidth) {
maxWidth = width
}
}
val height = paint.descent() - paint.ascent()
val bitmap = Bitmap.createBitmap(maxWidth, height.toInt() * lines.size, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
var y = - paint.ascent()
for (line in lines) {
canvas.drawText(line, 0f, y, paint)
y += height
}
setImageBitmap(bitmap)
}