Как показать только верхнюю и нижнюю границу

Это мой XML-код, который работает нормально, единственная проблема в том, что он показывает границу со всех четырех сторон, в то время как я хочу показать границу только сверху и снизу. Как я могу это сделать?

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <solid android:color="#FFFFFF" />
    <stroke
        android:width="3dip"
        android:color="#B1BCBE"
    />

    <padding
        android:bottom="0dip"
        android:left="0dip"
        android:right="0dip"
        android:top="0dip"
    />

</shape>

person user2761245    schedule 10.09.2013    source источник
comment
Отвечает ли это на ваш вопрос? Есть ли простой способ добавить границу вверху и внизу Android View?   -  person Gk Mohammad Emon    schedule 09.03.2021


Ответы (5)


Попробуйте следующее

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item> 
    <shape android:shape="rectangle">
      <solid android:color="#FF0000" /> 
    </shape>
  </item>   
    <item android:bottom="5dp"  android:top="5dp" >  
     // add android:right="5dp" and android:left="5dp" for border on left and right
     <shape android:shape="rectangle"> 
      <solid android:color="#000000" />
    </shape>
   </item>    
 </layer-list> 

введите описание изображения здесь

Редактировать:

Измените приведенное ниже в соответствии с вашими требованиями, изменив цвет, ширину штриха и отступ.

<?xml version="1.0" encoding="utf-8"?>
  <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item> 
    <shape android:shape="rectangle">
    <stroke
        android:width="5dip"
        android:color="#B1BCBE"
    />
    <padding
        android:bottom="0dip"
        android:left="0dip"
        android:right="0dip"
        android:top="0dip"
    />
    </shape>
  </item>   
    <item android:bottom="5dp"  android:top="5dp" >  
     <shape android:shape="rectangle"> 
      <solid android:color="#FFFFFF" />
    </shape>
   </item>    
 </layer-list>  

Щелчок

введите описание изображения здесь

person Raghunandan    schedule 10.09.2013
comment
Что, если бы я хотел красный сверху и синий снизу? Мне нужно что-то вроде этого: relbgrammatic.pngolg"> relbgrmmatic.pngolg " .com / -FI3EGIqLOc4 / VkNs8YtLSGI / AAAAAAAAb6w / вокруг макета ... как сделать это без кода и через XML? - person Si8; 06.12.2016
comment
почему список слоев? - person Fernando Torres; 05.05.2019

использовать:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- Describes the line -->
    <item android:top="-1dp" android:bottom="-1dp">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke android:width="1dp" android:color="#ffffff" />
        </shape>   
    </item>
</layer-list>
person Daniel L.    schedule 10.09.2013
comment
попробуй с запасом. убрав отступы влево и вправо и дайте ‹android: marginLeft = -3dip› - person Prachi; 10.09.2013
comment
‹Item android: top = 1dp android: bottom = 1dp android: left = -1dp android: right = -1dp› - person frostymarvelous; 15.07.2014
comment
Это выглядит слишком хорошо, чтобы быть правдой. Есть ли какие-нибудь известные проблемы? Например, на некоторых устройствах невидимые штрихи заикаются из-за дробной разницы dp? - person Taylan; 20.12.2016

Попробуй это:

<padding
    android:bottom="0dip"
    android:left="-1dip"
    android:right="-1dip"
    android:top="0dip" 
/>
person Prachi    schedule 10.09.2013
comment
увеличьте отрицательный отступ или маржу. :) - person Prachi; 10.09.2013

Обратитесь к этому коду -

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item >
        <shape 
            android:shape="rectangle">
        <solid android:color="#cccccc"/>
        </shape>
    </item>
    <item android:top="2dp" android:bottom="2dp">
        <shape 
            android:shape="rectangle">
        <solid android:color="#efefef"/>
        </shape>
    </item>
</layer-list>
person Vishal Pawale    schedule 10.09.2013
comment
цветовая схема изменилась, теперь мой цвет фона - ffff ur is change - person user2761245; 10.09.2013

Лучше не упоминать атрибуты высоты и ширины в списке слоев, поскольку атрибуты высоты и ширины элемента поддерживаются только API 23.

Вы можете использовать нижеприведенный Drawable, который работал ниже Android 4.0 и выше 5.0.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/blue_light" />  <!-- this is stroke color-->
        </shape>
    </item>

    <item android:bottom="5dp" android:top="5dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/dark_blue" />  <!-- this is main color-->
        </shape>
    </item>

</layer-list>
person Pranav    schedule 29.09.2017