以编程方式更改环厚度

时间:2016-05-05 12:37:44

标签: android xml

我正在为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但没有得到答案。

2 个答案:

答案 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

enter image description here

根据屏幕尺寸在所有值文件夹的尺寸文件中定义厚度,它将根据屏幕尺寸自动获取文件。