Android:模糊的形状,可从路径中移除

Android:模糊的形状,可从路径中移除,android,path,shapedrawable,Android,Path,Shapedrawable,我试图使一个可变形的,但当我调整它的大小时,安卓会画一条模糊的线。我知道一些示例代码说这不会发生,所以我无法理解我做错了什么。这是我写的: Path pathTriangulo = new Path(); pathTriangulo.moveTo(0, 0); pathTriangulo.lineTo(50, 0); pathTriangulo.lineTo(50, 50); pathTriangulo.lineTo(0, 0); miImagen = new ShapeDrawable(new

我试图使一个
可变形的
,但当我调整它的大小时,安卓会画一条模糊的线。我知道一些示例代码说这不会发生,所以我无法理解我做错了什么。这是我写的:

Path pathTriangulo = new Path();
pathTriangulo.moveTo(0, 0);
pathTriangulo.lineTo(50, 0);
pathTriangulo.lineTo(50, 50);
pathTriangulo.lineTo(0, 0);
miImagen = new ShapeDrawable(new PathShape(pathTriangulo,50,50));
miImagen.getPaint().setColor(Color.BLACK);
miImagen.getPaint().setStyle(Paint.Style.STROKE);
miImagen.setBounds(0, 0, 5000, 5000); 
如果我写
miImagen.setBounds(0,0,50,50)
它工作得很好:/
如果你能帮助我,我将不胜感激

您的shapedrawable应该覆盖onBoundsChange(),并基于边界创建一个新的PathShape。使用setShape()将新的PathShape应用于shapedrawable

    miImagen = new ShapeDrawable(new PathShape(pathTriangulo,50,50)) {
        @Override
        protected void onBoundsChange(Rect bounds) {
            super.onBoundsChange(bounds);
            Path pathTriangulo = new Path();
            pathTriangulo.moveTo(0, 0);
            pathTriangulo.lineTo(50, 0);
            pathTriangulo.lineTo(50, 50);
            pathTriangulo.lineTo(0, 0);
            setShape( new PathShape(pathTriangulo, bounds.width(), bounds.height()));

        }
    };