мой расширенный класс для ScrollView выглядит следующим образом:
Код: Выделить всё
class TopFadeEdgeScrollView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ScrollView(context, attrs, defStyleAttr) {
private val fadeHeight = 100 // Height for the top fading effect
private val solidColor = Color.parseColor("#232325") // Solid color
private val paint = Paint().apply {
color = solidColor
style = Paint.Style.FILL
}
init {
setFadingEdgeLength(fadeHeight)
}
override fun getBottomFadingEdgeStrength(): Float {
return 0.0f // Disable bottom fading edge
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
// Draw solid color at the top
canvas.drawRect(0f, 0f, width.toFloat(), fadeHeight.toFloat(), paint)
}
}
Код: Выделить всё
1/ Сплошной цвет (#232325), появляющийся как верхний плавный край, покрывающий определенную высоту (например, 140dp). .
2/ Ни градиента, ни прозрачности — просто сплошной блок цвета.
3/ Нижний край плавного перехода должен быть полностью отключен.< /p>
Фактический результат:
Я все еще вижу слабый градиент или эффект альфа-смешивания вверху, хотя я установил то же начало и конечные цвета для LinearGradient.
Похоже, что градиент или прозрачность все еще применяются, несмотря на использование сплошного цвета.
Как создать верх затухающий край сплошным цветом и полностью отключить нижний затухающий край? Что может быть причиной нежелательного эффекта градиента?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ew-android
Мобильная версия