2016-05-05 11 views
3

私はAndroid用のアプリケーションを開発しています。私の活動では、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="16dp" 
    android:useLevel="false" > 
    <solid android:color="#EEEEEE" /> 
    </shape> 

正常です。ここでは、上記のコードの厚みをプログラムで変更したいと考えています。これをどうやって変更できますか?私はそれのためにR & Dをしましたが、答えを得られませんでした。

+0

これまでに行ったことはありますか? – Amy

+0

@Amy drawableパッケージの形を使ってサークルを作った。つまり、background.xmlと私は自分のレイアウトの背景を設定するbackground: "background =" @ drawable/background "それはうまくいきますが、私はリングの厚さを変更して、画面サイズ –

答えて

2

プログラムで厚みを変更することがあります。質問Creating ring shape in Android codeの回答は、いくつかの洞察を提供します。

コメントに記載されているように表示サイズが増減するにつれて、リングの厚さを比例して単純に拡大または縮小したい場合は、android:thicknessRatioまたはandroid:innerRadiusRatio属性をXMLに使用することを検討してください削除し、android:thickness属性を削除します。詳細は、documentationを参照してください。

こちらがお役に立てば幸いです。

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" /> 

私は異なる画面に対して異なる値のフォルダを作成します。

enter image description here

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 
のように、それは自動的に画面サイズに応じてファイルを取得するフォルダのすべての値の次元ファイルの画面サイズに応じて厚さを定義します。

関連する問題