Sub*_*abu 2 android curve android-layout android-xml androiddesignsupport
如何创建布局或视图,如附加图像、可用于 ImageView、Slider 等的形状。
你可以使用类似的东西。
<FrameLayout
android:clipChildren="false"
android:clipToPadding="false"
...>
<ImageView/>
<com.google.android.material.card.MaterialCardView
android:id="@+id/card"
android:layout_marginTop="xxdp"
app:cardCornerRadius="48dp"
app:cardBackgroundColor="@color/colorSecondaryLight"
.../>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
然后应用一个ShapeAppearanceModel:
val cardView = findViewById<MaterialCardView>(R.id.card)
cardView.shapeAppearanceModel = cardView.shapeAppearanceModel.toBuilder()
.setTopLeftCorner(CustomCornerTreatment())
.setBottomLeftCorner(CornerFamily.ROUNDED, 0f)
.setBottomRightCorner(CornerFamily.ROUNDED, 0f)
.build()
Run Code Online (Sandbox Code Playgroud)
有这样的习惯CornerTreatment:
class CustomCornerTreatment : CornerTreatment() {
override fun getCornerPath(
shapePath: ShapePath,
angle: Float,
interpolation: Float,
radius: Float
) {
val interpolatedRadius = radius * interpolation
shapePath.reset(0f, -radius * interpolation, 270f,270 -angle)
shapePath.addArc(
0f,
-2*interpolatedRadius,
2*interpolatedRadius,
0f,
180f,
- angle)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
201 次 |
| 最近记录: |