Pri*_*čič 2 android android-jetpack-compose
我需要椭圆形渐变作为背景,但我所能得到的只是完美的圆形渐变Brush.radialGradient(..):
Modifier
.fillMaxSize()
.background(
brush = Brush.radialGradient(
colors = listOf(Color(0xFFffffff), Color(0xFF000000)),
),
)
Run Code Online (Sandbox Code Playgroud)
这就是我所需要的(椭圆形的形状当然必须与屏幕尺寸比例对齐):
但我能产出的只是:
关于如何解决这个问题有什么想法吗?
激进渐变不应该像这样拉伸,它根据距中心的距离确定像素颜色。
我不知道为什么没有“椭圆形”渐变,但 Android 本身就缺少它,而 compose 只是这里的一个中间层。
Android 中通常所做的只是缩放视图。您也可以在撰写时执行此操作:
BoxWithConstraints(
Modifier
.fillMaxSize()
) {
val aspectRatio = maxWidth / maxHeight
Box(
Modifier
.fillMaxSize()
.scale(maxOf(aspectRatio, 1f), maxOf(1 / aspectRatio, 1f))
.background(
brush = Brush.radialGradient(
colors = listOf(Color(0xFFffffff), Color(0xFF000000)),
),
)
)
}
Run Code Online (Sandbox Code Playgroud)
这里我使用BoxWithConstraintsgetmaxWidth和maxHeight来计算所需的比例。
| 归档时间: |
|
| 查看次数: |
3679 次 |
| 最近记录: |