我正在为Android开发应用程序。在我的活动中它包含一个线性布局。我想设置环型背景。所以我使用以下代码。
?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadiusRatio="2.7"
android:shape="ring"
android:thickness="16dp"
android:useLevel="false" >
<solid android:color="#EEEEEE" />
</shape>
工作正常。现在我想以编程方式更改上面代码中的厚度。我怎么能改变这个?我为此做了R&amp; D但没有得到答案。
答案 0 :(得分:2)
可能涉及以编程方式更改厚度。问题Creating ring shape in Android code的答案提供了一些见解。
如果您只是想按照评论中提到的显示尺寸增加/减少按比例放大或缩小戒指的厚度,那么您可能需要考虑使用android:thicknessRatio
或{{ XML中的1}}属性可以删除android:innerRadiusRatio
属性。有关详细信息,请参阅documentation。
我希望这会有所帮助。
答案 1 :(得分:1)
我有另一种方式。
?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadiusRatio="2.7"
android:shape="ring"
android:thickness="@dimensions/thickness_of_circle"
android:useLevel="false" >
<solid android:color="#EEEEEE" />
我为不同的屏幕创建不同的值文件夹。像
values-sw720dp 10.1” tablet 1280x800 mdpi
values-sw600dp 7.0” tablet 1024x600 mdpi
values-sw480dp 5.4” 480x854 mdpi
values-sw480dp 5.1” 480x800 mdpi
values-xhdpi 4.7” 1280x720 xhdpi
values-xhdpi 4.65” 720x1280 xhdpi
values-hdpi 4.0” 480x800 hdpi
values-hdpi 3.7” 480x854 hdpi
[![enter image description here][1]][1]
values-mdpi 3.2” 320x480 mdpi
values-ldpi 3.4” 240x432 ldpi
values-ldpi 3.3” 240x400 ldpi
values-ldpi 2.7” 240x320 ldpi
根据屏幕尺寸在所有值文件夹的尺寸文件中定义厚度,它将根据屏幕尺寸自动获取文件。