ShapeDrawable中的偏移形状

时间:2010-09-09 02:03:06

标签: android drawable shapes

我正在尝试绘制一个带有边框的圆角矩形,使用一个扩展ShapeDrawable的类(请参阅here)并且一切正常,但是,shaperawable似乎正在切掉一些边框,因为形状本身并不延伸到那些边界之外。

是否有一些方法可以抵消shaperawable开始绘制的位置,以便在形状本身和画布的边界之间存在一些填充?我已经尝试将ShapeDrawable.setBounds大于形状和ShapeDrawable.setPadding的内在大小,但似乎没有得到任何地方。我应该继承 Drawable 吗?

2 个答案:

答案 0 :(得分:21)

您可以使用inset(inset_shape.xml)包装形状drawable:

    <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

答案 1 :(得分:0)

在你的drawable中尝试这个......!

<?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>