android shape ring 画一个多层嵌套的圆环和圆角图片
16lz
2021-01-23
文章来自:http://blog.csdn.net/intbird 转载请说明出处
这里写目录标题
- 1.圆环如图:
- 2.解释说明:
- 3.具体实现
1.圆环如图:
2.解释说明:
仅当 android:shape="ring" 如下时才使用以下属性:
- android:innerRadius
尺寸。环内部(中间的孔)的半径,以尺寸值或尺寸资源表示。 - android:innerRadiusRatio
浮点型。环内部的半径,以环宽度的比率表示。例如,如果android:innerRadiusRatio=“5”,则内半径等于环宽度除以 5。此值被 android:innerRadius 覆盖。默认值为 9。 - android:thickness
尺寸。环的厚度,以尺寸值或尺寸资源表示。 - android:thicknessRatio
浮点型。环的厚度,表示为环宽度的比率。例如,如果android:thicknessRatio=“2”,则厚度等于环宽度除以 2。此值被 android:innerRadius 覆盖。默认值为 3。 - android:useLevel
布尔值。如果此属性用作 LevelListDrawable,则值为“true”。此属性的值通常应为“false”,否则无法显示形状。
note: 环的厚度和半径都是相对于整个圆来说的
-
innerRadiusRatio = 100, 则 圆心半径为 整圆100 / 系数100 = 1, 圆心很小
-
innerRadiusRatio = 1, 则 圆心半径为 整圆100 / 系数1 = 100, 圆心超大
-
thicknessRatio = 100, 则 圆环厚度为 整圆100/ 系数100 = 1, 厚度很小
-
thicknessRatio = 1,则 圆环厚度为 整圆100/ 系数1 = 100, 厚度超大
3.具体实现
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <item> <shape android:innerRadiusRatio="2.2" android:shape="ring" android:thicknessRatio="30" android:useLevel="false"> <solid android:color="#474747" /> shape> item> <item> <shape android:innerRadiusRatio="2.2" android:shape="ring" android:thicknessRatio="100" android:useLevel="false"> <solid android:color="#323232" /> <stroke android:width="2dp" android:color="@android:color/black" /> shape> item> <item> <shape android:innerRadiusRatio="3.4" android:shape="ring" android:thicknessRatio="6.6" android:useLevel="false"> <solid android:color="#1E1D20" /> shape> item> <item> <shape android:innerRadiusRatio="3.3" android:shape="ring" android:thicknessRatio="90" android:useLevel="false"> <solid android:color="#1E1D20" /> <stroke android:width="1dp" android:color="#323232" /> shape> item> <item> <shape android:innerRadiusRatio="3.5" android:shape="ring" android:thicknessRatio="70" android:useLevel="false"> <solid android:color="@android:color/black" /> shape> item>layer-list>
- 圆角图片
androidx.core.graphics.drawable.RoundedBitmapDrawable public static RoundedBitmapDrawable getAlbumBitmapRounded(Context context, String mediaId) { Resources res = context.getResources(); Bitmap src = BitmapFactory.decodeResource(res, MusicLibrary.getAlbumRes(mediaId)); RoundedBitmapDrawable dr = RoundedBitmapDrawableFactory.create(res, src); dr.setCornerRadius(Math.max(src.getWidth(), src.getHeight()) / 2.0f); return dr; }
后续整理出多个drawable的使用
https://developer.android.com/guide/topics/resources/drawable-resource
更多相关文章
- Shape画圆环的注意点
- Android圆环控件
- android 圆环图形的实现
- Android圆环形自定义进度条控件的绘制
- android 圆环(ring)drawable 画法 ——简单记录
- c语言实现输入圆的半径计算圆的面积
- CSS3和SVG实现的圆环菜单动画
- 探索另类圆环图的做法
- Android自定义View底部连续圆环效果