Подтвердить что ты не робот

Может ли выставляемая форма иметь размер, заданный как fill_parent?

Является ли это допустимым для Android способом использовать fill_parent для его размера?

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

<solid
        android:color="#666666"/>

<size
        android:width="fill_parent"
        android:height="fill_parent"/>
</shape>

ИЗМЕНИТЬ

Это на фоне представлений ImageButton. Я хочу, чтобы значок кнопки имел круг за ним, но я не всегда знаю, какой размер кнопки будет (разные размеры для макета).

4b9b3361

Ответ 1

Не совсем. Не использовать только ShapeDrawable. Если вы пройдете через документ ShapeDrawable, вы увидите (вы уже используете их в теге), что единственными допустимыми атрибутами являются px, dp, sp, в и мм

Цитата из документа: android:width="...."

Доступными единицами являются: px (пиксели), dp (независимые от плотности пиксели), sp (масштабированные пиксели на основе предпочтительного размера шрифта), в дюймах, мм (миллиметры)  Это относится к атрибуту: android:height

Это спекуляция с моей стороны, но я подозреваю, почему значение атрибута fill_parent не будет работать, потому что ShapeDrawble, в отличие от файла XML Layout не будет иметь родительский контейнер.

Оставляя атрибут <size.... /> полностью и устанавливая layout_width и layout_height в виджет, который будет ссылаться на упомянутый ShapeDrawable, является единственной опцией, которую я подозреваю (если нужно выполнить fill_parent).

Ответ 2

Как вы планируете использовать эту форму? Вы можете установить его как src или background для любого вида и установить высоту представления в "fill_parent" - это более обычный способ.

Ответ 3

Вы не можете сделать это из файла xml, но вы можете сделать это из java файла. Просто используйте

public final void resize (float width, float height)

Ответ 4

Я не знаю, какой уровень API это вступил в силу, но в документации, пригодной для рисования Shape, он будет масштабироваться пропорционально, чтобы соответствовать представлению. Таким образом, вы можете, например, поставить width = 1dp и height = 1dp. См. https://stuff.mit.edu/afs/sipb/project/android/docs/guide/topics/resources/drawable-resource.html#Shape