Штрих Android с открытой стороной?

Действительно ли возможно создать объект фигуры Android со штрихом только на определенных сторонах?

Например, я имею:

<stroke 
 android:width="3dip" 
 android:color="#000000"
    android:dashWidth="10dip" 
    android:dashGap="6dip" />

Который подобен этому CSS:

border: 3px dashed black;

Как я могу установить штрих всего на одной стороне? Это - то, как я сделал бы это в CSS:

border-left: 3px dashed black;

Как дела это в Android XML?

90
задан Vadim Kotov 22 July 2019 в 11:51
поделиться

1 ответ

Я решил эту проблему, используя list-layer, комбинируя две фигуры, одна из которых с высотой 1dp размещается внизу

optionscreen_bottomrectangle.xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- This is the line -->
<item>
      <shape>
            <solid android:color="#535353" />
      </shape>
</item>
<!-- This is the main color -->
<item android:bottom="1dp">
     <shape>
           <solid android:color="#252525" />
     </shape>
</item>
</layer-list>

Затем, в файле layout/main.xml

<TextView
    android:id="@+id/bottom_rectangle"
    android:background="@drawable/optionscreen_bottomrectangle"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_below="@id/table_options"
    android:layout_above="@id/exit_bar"/>

который заполняет промежуток между table_options и exit_bar фоном и прямо перед exit_bar печатает линию 1dp. Это помогло мне, надеюсь, поможет и кому-то другому.

Ответ отредактирован, чтобы расположить слои в правильном порядке. Спасибо Алекс!

40
ответ дан 24 November 2019 в 06:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: