diff --git a/kotlitex/src/main/java/io/github/karino2/kotlitex/view/MarkdownView.kt b/kotlitex/src/main/java/io/github/karino2/kotlitex/view/MarkdownView.kt index 55569fc..df4aa4a 100644 --- a/kotlitex/src/main/java/io/github/karino2/kotlitex/view/MarkdownView.kt +++ b/kotlitex/src/main/java/io/github/karino2/kotlitex/view/MarkdownView.kt @@ -2,6 +2,7 @@ package io.github.karino2.kotlitex.view import android.content.Context import android.content.res.AssetManager +import android.graphics.Color import android.text.Spannable import android.text.SpannableStringBuilder import android.util.AttributeSet @@ -107,7 +108,7 @@ class SpannableMathSpanHandler(val assetManager: AssetManager, val baseSize: Flo private fun appendMathSpan(exp: String, isMathMode: Boolean) { isMathExist = true val size = if (isMathMode) mathExpressionSize else baseSize - val span = MathExpressionSpan(exp, size, assetManager, isMathMode) + val span = MathExpressionSpan(exp, size, assetManager, isMathMode, equationColor = Color.BLACK) span.ensureDrawable() val begin = spannable.length spannable.append("\$\$${exp}\$\$") diff --git a/kotlitex/src/main/java/io/github/karino2/kotlitex/view/MathExpressionSpan.kt b/kotlitex/src/main/java/io/github/karino2/kotlitex/view/MathExpressionSpan.kt index 29435c0..6fdd861 100644 --- a/kotlitex/src/main/java/io/github/karino2/kotlitex/view/MathExpressionSpan.kt +++ b/kotlitex/src/main/java/io/github/karino2/kotlitex/view/MathExpressionSpan.kt @@ -15,8 +15,9 @@ import kotlin.math.absoluteValue import kotlin.math.max import kotlin.math.roundToInt -private class MathExpressionDrawable(expr: String, baseSize: Float, val fontLoader: FontLoader, val isMathMode: Boolean, val drawBounds: Boolean = false) { +private class MathExpressionDrawable(expr: String, baseSize: Float, val fontLoader: FontLoader, val isMathMode: Boolean, val drawBounds: Boolean = false, equationColor: Int) { var rootNode: VerticalList + val colorEquation = equationColor val firstVListRowBound: Bounds? get() { @@ -43,7 +44,7 @@ private class MathExpressionDrawable(expr: String, baseSize: Float, val fontLoad val paint = Paint() val textPaint = TextPaint(Paint.ANTI_ALIAS_FLAG).apply { - color = Color.BLACK + color = equationColor typeface = Typeface.SERIF } @@ -117,7 +118,7 @@ private class MathExpressionDrawable(expr: String, baseSize: Float, val fontLoad drawBounds(drawableSurface, parent.bounds) } is HorizontalLineNode -> { - paint.color = Color.BLACK + paint.color = colorEquation paint.strokeWidth = max(1.0f, parent.bounds.height.toFloat()) val x = translateX(parent.bounds.x) val y = translateY(parent.bounds.y) @@ -156,7 +157,7 @@ private class MathExpressionDrawable(expr: String, baseSize: Float, val fontLoad mat.postTranslate(x, y) // TODO: more suitable handling. - paint.color = Color.BLACK + paint.color = colorEquation paint.strokeWidth = 2.0f paint.style = Paint.Style.FILL_AND_STROKE @@ -222,7 +223,7 @@ private class MathExpressionDrawable(expr: String, baseSize: Float, val fontLoad @Suppress("UNUSED_PARAMETER") // Similar to DynamicDrawableSpan, but getSize is a little different. // I created super class of DynamicDrawableSpan because getCachedDrawable is private and we neet it. -class MathExpressionSpan(val expr: String, val baseHeight: Float, val assetManager: AssetManager, val isMathMode: Boolean) : ReplacementSpan() { +class MathExpressionSpan(val expr: String, val baseHeight: Float, val assetManager: AssetManager, val isMathMode: Boolean, val equationColor: Int) : ReplacementSpan() { enum class Align { Bottom, BaseLine } @@ -365,7 +366,7 @@ class MathExpressionSpan(val expr: String, val baseHeight: Float, val assetManag // TODO: drawBounds should be always false. Unlike baseSize, we don't have to expose the flag to end-users. val drawable = MathExpressionDrawable( expr, baseHeight, - AndroidFontLoader(assetManager), isMathMode, drawBounds = false + AndroidFontLoader(assetManager), isMathMode, drawBounds = false, equationColor = equationColor ) return drawable }