Страница 1 из 1

Как нарисовать прямоугольник, линию?

Добавлено: 12 янв 2012, 15:09
Oleg_SS
На форме есть кнопки, текст и т.д.
Теперь хочу все это заключить в прямоугольник с заданной толщиной и цветом линии.
На подобие рамки (двойной рамки).
Чтобы не зависило от размера и положения экрана.
Как это сделать?

Re: Как нарисовать прямоугольник, линию?

Добавлено: 12 янв 2012, 15:13
damager82
Можно не рисовать, а сделать картинку и ее поставить как background.

Re: Как нарисовать прямоугольник, линию?

Добавлено: 12 янв 2012, 15:29
RagnarR
damager82 писал(а):Можно не рисовать, а сделать картинку и ее поставить как background.
Можно, но если будет картинка будет менять размер, могут появиться артефакты. Для простых вариантов можно использовать Shape. В папке /res/drawable проекта создается xml-файл. Файл должен быть примерно с таким содержанием:

Код: Выделить всё

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

    <gradient
        android:angle="270"
        android:endColor="#FFAAAAAA"
        android:startColor="#FFFFFFFF"
        android:type="linear" />

    <stroke
        android:width="1dip"
        android:color="@android:color/white" />

    <corners android:radius="3dip" />

</shape>
Где gradient - это градиент фигуры, stroke - это контур, corners - это закругление на углах.

Далее надо установить у необходимого элемента background'ом этот xml-файл:

Код: Выделить всё

android:background="@drawable/your_bg_shape"
P.S.: Можно еще использовать утилитку для создания тянущихся PNG файлов (NinthPatch)

Re: Как нарисовать прямоугольник, линию?

Добавлено: 12 янв 2012, 15:44
damager82
RagnarR писал(а):P.S.: Можно еще использовать утилитку для создания тянущихся PNG файлов (NinthPatch)
Ну да, я имел ввиду *.9.png файлы.

Re: Как нарисовать прямоугольник, линию?

Добавлено: 13 янв 2012, 05:32
Oleg_SS
Получилось, спасибо!
А если маленько усложнить?
Как получить двойную рамку?
Я так понимаю надо вставить один прямоугольник в другой. Но как?

Еще вопрос: в папке res по умолчанию три папки
drawable-hdpi
drawable-ldpi
drawablw-mdpi
для разных разрешений дисплея.
Если создать просто папку drawable, она будет для любого разрешения экрана?

Re: Как нарисовать прямоугольник, линию?

Добавлено: 13 янв 2012, 05:56
Oleg_SS
по поводу двойной рамки вопрос снят
вставил один LinearLayout в другой, каждый со своим описанием backgrounda

Re: Как нарисовать прямоугольник, линию?

Добавлено: 13 янв 2012, 08:54
RagnarR
Oleg_SS писал(а): Еще вопрос: в папке res по умолчанию три папки
drawable-hdpi
drawable-ldpi
drawablw-mdpi
для разных разрешений дисплея.
Если создать просто папку drawable, она будет для любого разрешения экрана?
Да, конечно для любого. Эта папка общая для всех разрешений.

Re: Как нарисовать прямоугольник, линию?

Добавлено: 01 июл 2013, 05:58
assan
а как нарисовать линию в 2px?