irpas技术客

Android MaterialShapeDrawable_xiangxiongfly

网络投稿 7852

文章目录 Android MaterialShapeDrawable概述属性说明基本使用圆角效果切角效果标注效果内边三角形外边三角形气泡阴影 源码下载

Android MaterialShapeDrawable 概述

方便开发人员给控件添加样式。

属性说明

CornerTreatment:角样式

RoundedCornerTreatment:圆角样式CutCornerTreatment:切角样式

EdgeTreatment:边样式

TriangleEdgeTreatment:三角形

MarkerEdgeTreatment:标记点

OffsetEdgeTreatment:偏移

基本使用 圆角效果

val shapeModel = ShapeAppearanceModel.builder() .setAllCorners(RoundedCornerTreatment()) .setAllCornerSizes(dp2px(10F)) .build() val backgroundDrawable = MaterialShapeDrawable(shapeModel).apply { setTint(Color.GRAY) paintStyle = Paint.Style.FILL } textView01.background = backgroundDrawable 切角效果

private fun test6() { val shapeModel = ShapeAppearanceModel.builder() .setAllCorners(CutCornerTreatment()) .setAllCornerSizes(dp2px(10F)) .build() val backgroundDrawable = MaterialShapeDrawable(shapeModel).apply { setTint(Color.GRAY) paintStyle = Paint.Style.FILL } textView06.background = backgroundDrawable } 标注效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2nfk84eR-1640074729035)(C:\Users\NINGMEI\AppData\Roaming\Typora\typora-user-images\image-20211221154351180.png)]

val shapeModel = ShapeAppearanceModel.builder() .setAllCorners(RoundedCornerTreatment()) .setAllCornerSizes(dp2px(10F)) .setAllEdges(MarkerEdgeTreatment(dp2px(10F))) .build() val backgroundDrawable = MaterialShapeDrawable(shapeModel).apply { setTint(Color.GRAY) paintStyle = Paint.Style.FILL_AND_STROKE strokeWidth = dp2px(2F) strokeColor = ContextCompat.getColorStateList(context, R.color.red) } textView07.background = backgroundDrawable 内边三角形

val shapeModel = ShapeAppearanceModel.builder() .setAllCorners(RoundedCornerTreatment()) .setAllCornerSizes(dp2px(10F)) .setAllEdges(TriangleEdgeTreatment(dp2px(10F), true)) .build() val backgroundDrawable = MaterialShapeDrawable(shapeModel).apply { setTint(Color.GRAY) paintStyle = Paint.Style.FILL_AND_STROKE strokeWidth = dp2px(2F) strokeColor = ContextCompat.getColorStateList(context, R.color.red) } textView02.background = backgroundDrawable 外边三角形

val shapeModel = ShapeAppearanceModel.builder() .setAllCorners(RoundedCornerTreatment()) .setAllCornerSizes(dp2px(10F)) .setAllEdges(TriangleEdgeTreatment(dp2px(10F), false)) .build() val backgroundDrawable = MaterialShapeDrawable(shapeModel).apply { setTint(Color.GRAY) paintStyle = Paint.Style.FILL_AND_STROKE strokeWidth = dp2px(2F) strokeColor = ContextCompat.getColorStateList(context, R.color.red) } (textView03.parent as ViewGroup).clipChildren = false textView03.background = backgroundDrawable 气泡

val shapeModel = ShapeAppearanceModel.builder() .setAllCornerSizes(dp2px(6F)) .setBottomEdge( OffsetEdgeTreatment( TriangleEdgeTreatment(dp2px(6F), false), dp2px(30F) ) ) .build() val backgroundDrawable = MaterialShapeDrawable(shapeModel).apply { setTint(Color.parseColor("#FA4B05")) paintStyle = Paint.Style.FILL } (textView04.parent as ViewGroup).clipChildren = false textView04.background = backgroundDrawable

val shapeModel = ShapeAppearanceModel.builder() .setAllCornerSizes(dp2px(6F)) .setRightEdge( OffsetEdgeTreatment( TriangleEdgeTreatment(dp2px(6F), false), dp2px(0F) ) ) .build() val backgroundDrawable = MaterialShapeDrawable(shapeModel).apply { setTint(Color.parseColor("#FA4B05")) paintStyle = Paint.Style.FILL } (textView05.parent as ViewGroup).clipChildren = false textView05.background = backgroundDrawable 阴影

val shapeModel = ShapeAppearanceModel.builder() .setAllCorners(RoundedCornerTreatment()) .setAllCornerSizes(dp2px(16F)) .build() val backgroundDrawable = MaterialShapeDrawable(shapeModel).apply { setTint(Color.GRAY) paintStyle = Paint.Style.FILL //绘制阴影 shadowCompatibilityMode = MaterialShapeDrawable.SHADOW_COMPAT_MODE_ALWAYS initializeElevationOverlay(context) setShadowColor(Color.RED) elevation = dp2px(10F) } (textView08.parent as ViewGroup).clipChildren = false textView08.background = backgroundDrawable 源码下载


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Android #文章目录Android