首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android中绘制形状

如何在Android中绘制形状
EN

Stack Overflow用户
提问于 2013-04-26 17:52:48
回答 1查看 631关注 0票数 0

我正在学习Android,并试图在画布上画出不同的形状。此刻,我被一个不同角度的椭圆形卡住了:

我尝试过使用path.addRoundRect()方法(采用半径数组的方法),但无法确定应该传递哪些值才能实现这样的形状。我也尝试过使用path.lineTo(),但无法实现这样的结果(这有点类似,但仍然不是我所需要的)。实现这一目标的好办法是什么?

编辑1:我尝试了以下内容:

代码语言:javascript
复制
Path path= new Path();
    path.moveTo(x - radius, y - radius/ 1.5f);
    path.lineTo(x - radius/ 4, y - radius);
    path.lineTo(x, y - radius);
    path.lineTo(x + radius/ 2, y - radius);
    path.lineTo(x + radius, y - radius/ 2);
    path.lineTo(x, y + radius/ 2);
    path.lineTo(x - radius/ 2, y + radius/ 1.5f);
    path.lineTo(x - radius, y + radius/ 4);
    path.lineTo(x - radius, y - radius/ 1.5f);
    path.close();

Paint pathPaint = new Paint();
        pathPaint.setColor(Color.BLACK);                    
        pathPaint.setStrokeWidth(2.5f);              
        pathPaint.setDither(true);                    
        pathPaint.setStyle(Style.STROKE);       
        pathPaint.setStrokeJoin(Join.ROUND); 
        pathPaint.setStrokeCap(Cap.ROUND);      
        pathPaint.setPathEffect(new CornerPathEffect(20)); 
        pathPaint.setAntiAlias(true);
        canvas.drawOval(new RectF(x - radius, y - radius+ 2, x + radius-2, y + radius- 2), pathPaint);
        canvas.drawPath(path, pathPaint);

X和Y是显示器上的一些坐标,半径是圆的半径(我开始画一个圆圈)。它等于14 px。

我也试过这样做:

代码语言:javascript
复制
float[] radii = new float[] {
                5, 
                5,
                1,
                1,
                5,
                1,
                1,
                1,

        };
        path.addRoundRect(new RectF(x - radius, y - radius, x + radius, 

y + radius), 
                    radii, Direction.CW);
canvas.drawPath(path, pathPaint);
EN

回答 1

Stack Overflow用户

发布于 2016-05-17 03:44:13

尝试Canvas.skew()函数。下面的URL有一个很好的例子。倾斜正在绘制的点“倾斜”。您将根据画布的当前中心得到不同的结果,因此根据需要进行翻译()以获得所需的结果。

http://css3files.com/transform/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16242415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档