我正在尝试绘制一个带有边框的圆角矩形,使用一个扩展ShapeDrawable的类(请参阅here)并且一切正常,但是,shaperawable似乎正在切掉一些边框,因为形状本身并不延伸到那些边界之外。
是否有一些方法可以抵消shaperawable开始绘制的位置,以便在形状本身和画布的边界之间存在一些填充?我已经尝试将ShapeDrawable.setBounds大于形状和ShapeDrawable.setPadding的内在大小,但似乎没有得到任何地方。我应该继承 Drawable 吗?
答案 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>