我想画一个有洞的矩形。我正试图通过使用形状矩形来实现这一点。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="50dp"
android:color="@color/red" />
</shape>
我正试图弄清楚在绘制矩形时如何更改笔划宽度,以便矩形的上下边缘笔划宽度为50 dp,左右边缘笔划宽度则为20 dp。
我真的很感谢你在这方面的帮助。
下面是一个如何使用层列表的例子:我将更改左上角和右上角的属性,如下所示:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
</shape>
</item>
<item android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/holo_blue_bright"/>
</shape>
</item>
<item android:left="3dp">
<shape android:shape="rectangle">
<gradient android:angle="270" android:startColor="#8C2300" android:endColor="#D34617"/>
</shape>
</item>
<item android:right="8dp">
<shape android:shape="rectangle">
<gradient android:angle="270" android:startColor="#000000" android:endColor="#ffc0cb"/>
</shape>
</item>
</layer-list>
将这个文件称为drawable文件夹中的layers.xml。然后将其作为背景应用于您的视图,如下所示:
android:background="@drawable/shape"
我认为,该形状被用作视图的背景(例如imageView)。因此,首先从imageView
获取Drawable
对象,然后从中获取Paint
对象。然后,您可以修改任何您想要的属性。
Drawable background = imageView.getBackground();
if (background instanceof ShapeDrawable) {
// cast to 'ShapeDrawable'
ShapeDrawable shapeDrawable = (ShapeDrawable)background;
shapeDrawable.getPaint().setStrokeWidth(...);
}
此处的相关问题:以编程方式设置android形状颜色
感谢大家的帮助。我最终覆盖了onDraw()来清除布局的背景颜色,从而使用setXfermode()创建矩形孔。