Форма смещения в пределах ShapeDrawable
Я пытаюсь нарисовать округленный прямоугольник с рамкой вокруг него, используя класс, который расширяет ShapeDrawable (см. здесь), и все работает, за исключением того, чтобы отрезать часть границы, потому что сама форма не выходит за пределы этих границ.
Не существует ли какой-либо способ смещения, когда фигураруемая начинает рисовать так, чтобы между границами самой фигуры и холста была какая-то прокладка? Я попробовал оба ShapeDrawable.setBounds больше, чем собственный размер формы и ShapeDrawable.setPadding, но, похоже, никуда не денутся. Должен ли я вместо этого подклассифицировать Drawable?
Ответы
Ответ 1
Вы можете обернуть форму с помощью вставки (inset_shape.xml):
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/your_shape_drawable" android:insetBottom="10dip"
android:insetLeft="10dip" android:insetRight="10dip" android:insetTop="10dip"
android:visible="true" />
Затем просто используйте inset_shape, как вам нужно.
Ответ 2
Попробуй это в своем мобильном...!
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#e1e1e1" />
<stroke
android:width="2dp"
android:color="#808080" />
<corners android:radius="10dp" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>