12

我正在尝试使用扩展 ShapeDrawable 的类(请参见此处)绘制一个带有边框的圆角矩形,并且一切正常,除了 shapedrawable 似乎正在切断一些边框,因为形状本身没有向外延伸那些界限。

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

4

2 回答 2

25

你可以用插图(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

于 2010-09-09T05:56:04.960 回答
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>
于 2013-07-04T12:58:07.753 回答