2015-01-19 2 views
4

Я рисую пользовательский заголовок для ввода информации в своем приложении. Я нарисовал 2 фигуры в xml, а затем разместил их в макете. Затем этот макет помещается в мой основной макет. Однако есть черная рамка, которая нарисована вокруг каждого из включенных заголовков. Это похоже только на устройства api 21. Что происходит?Странная черная рамка вокруг рисованного андроида XML

circle.xml

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/icon_background" 
    android:shape="oval"> 
    <padding 
     android:left="2dp" 
     android:top="2dp" 
     android:right="2dp" 
     android:bottom="2dp" /> 
    <solid 
     android:color="@color/color_primary" 
     android:angle="270"> 
    </solid> 
</shape> 

line.xml

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="line"> 
    <stroke android:width="5dp" 
     android:color="@color/color_primary"/> 

    <size android:height="10dp" /> 
</shape> 

расположение заголовка

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ImageView 
     android:layout_height="5dp" 
     android:layout_width="match_parent" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="14dp" 
     android:src="@drawable/line"> 
    </ImageView> 

    <ImageView 
     android:id="@+id/circle" 
     android:layout_height="32dp" 
     android:layout_width="32dp" 
     android:src="@drawable/circle" 
     android:layout_centerHorizontal="true"> 
    </ImageView> 

    <ImageView 
     android:id="@+id/header_icon" 
     android:layout_height="32dp" 
     android:layout_width="32dp" 
     android:src="@drawable/ic_action_car" 
     android:layout_centerHorizontal="true"> 
    </ImageView> 

</RelativeLayout> 

В комплекте раскладка

<RelativeLayout 

     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingLeft="@dimen/header_horizontal_margin" 
     android:paddingRight="@dimen/header_horizontal_margin" 
     android:paddingTop="@dimen/header_vertical_margin" 
     android:paddingBottom="@dimen/header_vertical_margin"> 

     <include 
      android:id="@+id/carSpecs" 
      layout="@layout/header" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 
     </include> 

     <Spinner 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingTop="@dimen/header_vertical_margin" 
      android:paddingBottom="@dimen/header_vertical_margin" 
      android:layout_gravity="center_horizontal" 
      android:id="@+id/vehicleSpinner" 
      android:layout_below="@+id/carSpecs"/> ... 

Screenshot!

+0

Это происходит на всех устройствах? Тестировали ли вы на эмуляторе Android? – alanv

+0

Я замечаю это на устройствах api21. Нижняя апи кажется прекрасной. – kd8bny

+0

Я не могу воспроизвести это на эмуляторе 5.0.1 или на устройстве Nexus, учитывая ваш образец XML. Мне нужно было изменить высоту ImageView, содержащего строку, предназначенную для wrap_content или 10dp, хотя для подходящего для правильной установки. – alanv

ответ

1

Выяснил это! Используя ту же основу, что и @Der Golem, я удалил

<size android:height="10dp" /> 

с линии.xml. Поскольку удар был половину размера, я получал границу. Спасибо за помощь всем!

1

Try, чтобы добавить этот <solid android:color="#00FFFFFF"/> в вашем line.xml.

+0

Нет, у него все еще есть граница. Один из них заметил, что граница показывает, когда я включаю заголовок более одного раза. Благодаря! – kd8bny

1

Удалить это:

<stroke android:width="5dp" 
    android:color="@color/color_primary"/> 

От line.xml

Это добавляет дополнительные "границы", используя ресурс color_primary цвета, как это определено в вашем colors.xml.