fix: Update Java home path in gradle.properties for consistency
This commit is contained in:
@@ -236,11 +236,15 @@ fun AppleEmojiText(
|
||||
val fontSizeValue = if (fontSize == androidx.compose.ui.unit.TextUnit.Unspecified) 15f
|
||||
else fontSize.value
|
||||
|
||||
// Минимальная высота для корректного отображения emoji
|
||||
val minHeight = (fontSizeValue * 1.5).toInt()
|
||||
|
||||
AndroidView(
|
||||
factory = { ctx ->
|
||||
AppleEmojiTextView(ctx).apply {
|
||||
setTextColor(color.toArgb())
|
||||
setTextSize(fontSizeValue)
|
||||
minimumHeight = (minHeight * ctx.resources.displayMetrics.density).toInt()
|
||||
}
|
||||
},
|
||||
update = { view ->
|
||||
@@ -265,6 +269,11 @@ class AppleEmojiTextView @JvmOverloads constructor(
|
||||
private val bitmapCache = LruCache<String, Bitmap>(100)
|
||||
}
|
||||
|
||||
init {
|
||||
// Отключаем лишние отступы шрифта для корректного отображения emoji
|
||||
includeFontPadding = false
|
||||
}
|
||||
|
||||
fun setTextWithEmojis(text: String) {
|
||||
val spannable = SpannableStringBuilder(text)
|
||||
val matcher = EMOJI_PATTERN.matcher(text)
|
||||
@@ -275,12 +284,13 @@ class AppleEmojiTextView @JvmOverloads constructor(
|
||||
val bitmap = loadEmojiBitmap(unified)
|
||||
|
||||
if (bitmap != null) {
|
||||
val size = (textSize * 1.2).toInt()
|
||||
val size = (textSize * 1.3).toInt() // Увеличиваем размер emoji
|
||||
val scaledBitmap = Bitmap.createScaledBitmap(bitmap, size, size, true)
|
||||
val drawable = BitmapDrawable(resources, scaledBitmap)
|
||||
drawable.setBounds(0, 0, size, size)
|
||||
|
||||
val span = ImageSpan(drawable, ImageSpan.ALIGN_BASELINE)
|
||||
// ALIGN_BOTTOM лучше работает с emoji - не обрезает сверху
|
||||
val span = ImageSpan(drawable, ImageSpan.ALIGN_BOTTOM)
|
||||
spannable.setSpan(span, matcher.start(), matcher.end(),
|
||||
android.text.Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user