Android Drawable Shape Ring на более низком уровне API - PullRequest
4 голосов
/ 18 марта 2012

Я определил простое нарисованное кольцо, чтобы использовать его в качестве фона кнопки. Вот как я это делаю:

 <shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="ring"
   android:innerRadius="20dp"
     android:thickness="1dp"
     android:useLevel ="false"
    >   
   <solid
     android:color="@color/lines" />
     />

</shape>  

Я использую его в относительной раскладке, как:

     <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:padding="30dip"
android:orientation="vertical">

<TextView
    android:text="@string/start_game"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    />

<Button android:id="@+id/start"
 android:layout_height="wrap_content" 
 android:layout_width="wrap_content"  
android:background="@layout/round_button"  
  android:layout_alignParentBottom="true"
   />

</RelativeLayout>

Где round_button - мой xml-файл, в котором я определил кольцо. Это дает мне отличные результаты, когда я установил минимальный уровень SDK 11 или выше. Но проблема в том, что когда я пытаюсь изменить его на более низкий уровень API, скажем, 3, кольцо не появляется! Что мне здесь не хватает?

1 Ответ

0 голосов
/ 07 октября 2015

Я столкнулся с чем-то похожим. Я исправил это, установив атрибут useLevel как ложный на фигуре, например:

<shape android:shape="ring"
        android:thickness="@dimen/indicatorcircle_thickness"
        android:useLevel="false">
        <size android:width="@dimen/indicatorcircle_size" android:height="@dimen/indicatorcircle_size"/>
        <solid android:color="@color/white"/>
</shape>
...