Xamarin.Android设置android:shape="circle"编译报错怎么解决?
解决Xamarin.Android中Shape圆形编译报错问题
问题根源
Android的shape属性枚举里没有circle这个有效值,报错信息已经明确列出合法选项:oval=1, rectangle=0, ring=3。设计预览能显示是编辑器的兼容容错,但编译时会严格校验属性值,直接用circle必然导致构建失败。
正确实现圆形的步骤
- 替换shape类型:把
android:shape="circle"改成android:shape="oval"——oval是Android官方支持的椭圆/圆形类型,设置宽高一致就能得到正圆形 - 保证宽高对等:
<size>标签里的width和height必须设为相同值,否则会变成椭圆 - 移除无效属性:
<corners>标签对oval类型完全无效,直接删掉即可 - 调整padding(可选):你的padding左右不对称,会导致内部内容偏移,若要圆形布局对称,建议把padding设为相同值
修正后的完整代码
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#FFF44444"/> <!-- 宽高设为相同值,示例用60dp,可按需调整 --> <size android:height="60dp" android:width="60dp"/> <!-- 对称padding,按需调整 --> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape>
补充说明
如果需要在布局中动态调整圆形大小,可以去掉<size>标签,直接在引用该shape的View里设置layout_width和layout_height为相同值,再将background指定为这个shape即可。
内容的提问来源于stack exchange,提问作者angleUr
相关产品推荐
相关产品推荐

