首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ShapeDrawable椭圆形(笔画样式)的边缘被切割(Android Studio)

ShapeDrawable椭圆形(笔画样式)的边缘被切割(Android Studio)
EN

Stack Overflow用户
提问于 2017-06-10 00:38:12
回答 0查看 755关注 0票数 1

我是Android Studio的新手,目前我正在尝试以编程方式创建任意颜色、笔划宽度和大小的椭圆形(不是实线,只是笔触):

代码语言:javascript
运行
复制
        long randomSeedm = System.currentTimeMillis();
        Random random = new Random(randomSeedm);
        int[] color = {R.color.red, R.color.black, .....};

        int ovalWidth = 20 + random.nextInt(100);
        int ovalHeight = 20 + random.nextInt(100);

        ShapeDrawable shape = new ShapeDrawable(new OvalShape());
        shape.setIntrinsicWidth (ovalWidth);
        shape.setIntrinsicHeight (ovalHeight);
        shape.getPaint().setColor(getResources().getColor(color[random.nextInt(6)]));
        shape.getPaint().setStyle(Paint.Style.STROKE);
        shape.getPaint().setStrokeWidth(2+random.nextInt(15));
        shape.getPaint().setAntiAlias(true);

        ImageView oval = new ImageView(this);
        oval.setImageDrawable(shape);

之后,我将ImageView放入一个覆盖整个屏幕的FrameLayout中:

代码语言:javascript
运行
复制
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ovalWidth, ovalHeight);
        left = random.nextInt(frameLayoutWidth - ovalWidth);
        top = random.nextInt(frameLayoutHeight - ovalHeight);
        params.leftMargin = left;
        params.topMargin = top;
        params.gravity = Gravity.TOP + Gravity.LEFT;

        frameLayoutWholeScreen.addView(oval, params);

结果非常令人满意(从我初学者的角度来看),唯一的问题是椭圆形的边缘被部分切割了。下面是一些示例:

示例1

示例2

有什么方法可以避免割伤吗?

EN

回答

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

https://stackoverflow.com/questions/44462844

复制
相关文章

相似问题

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