【发布时间】:2017-10-13 02:47:21
【问题描述】:
我为矩形创建了一个类,因为它是我的应用程序中的一个对象。但是现在我希望角落变圆。您可以在下面看到它是一个简单的类,可以创建具有相同属性的任意数量的矩形。
public class customDrawable extends ShapeDrawable {
public void setCustomDrawableAttributes(ShapeDrawable shapeDrawable){
int x = 0;
int y = 0;
int width = 100;
int height = 100;
shapeDrawable.setBounds(x, y-height, x + width,y+height );
}
public ShapeDrawable createShape(){
return new ShapeDrawable(new RectShape());
}
}
更新:没有这种方法,我什么都不会被绘制,因为没有大小。有了它,它只绘制通常的矩形。 (更改为不显示应用特定方法的整数值)
public void setDrawableAttributes(ShapeDrawable shapeDrawable){
int x = 0;
int y = 500
int width = 200
int height = 300
shapeDrawable.setBounds(x, y-height, x + width,y+height );
}
根据我的研究,我发现我不能简单地添加圆角,而是必须创建一个RoundRectShape shapeDrawable。我使用这个RoundRectShape 创建一个圆角矩形的每一次尝试都失败了。不知何故,形状总是以没有圆角的规则矩形结束。
我正在寻找一个简单的骨架类(就像提供的那样),它可以创建一个 roundRectShape 可绘制对象。只要它有圆角,高度和宽度就无关紧要。必须使用 Java 而不是 XML。
我尝试创建圆角矩形的链接:
1.https://developer.android.com/reference/android/graphics/drawable/shapes/RoundRectShape.html
6.Android: RoundRectShape: Modify corner radii
8.http://www.edumobile.org/android/shape-drawing-example-in-android/ 9.http://programtalk.com/java-api-usage-examples/android.graphics.drawable.shapes.RoundRectShape/
【问题讨论】:
-
使用可从 xml 绘制的形状在您的情况下不起作用?
-
也许我想因为它们每次都是一样的。能举个例子吗?
-
我认为程序化可能仍然更好。我假设有更多选择。为什么要用 xml 代替?
-
您可以非常有效地自定义 xml 形状。是的,它也会让你的代码更干净。
-
我试过了。对我不起作用。
标签: java android android-canvas shapedrawable android-shapedrawable