【问题标题】:How to draw shape like below image如何绘制如下图所示的形状
【发布时间】:2019-06-12 09:17:07
【问题描述】:

请帮我画一个如下图所示的形状。我尝试了很多东西,但没有一个代码有效。

这是我尝试过的

 private Point mFirstCurveStartPoint = new Point();
 private Point mFirstCurveEndPoint = new Point();

 .................................................
 .................................................

      mFirstCurveStartPoint.set((mNavigationBarWidth / 2) - (CURVE_CIRCLE_RADIUS * 2) - (CURVE_CIRCLE_RADIUS / 3), 0);
    // the coordinates (x,y) of the end point after curve
      mFirstCurveEndPoint.set(mNavigationBarWidth / 2, CURVE_CIRCLE_RADIUS + (CURVE_CIRCLE_RADIUS / 4));

    mFirstCurveControlPoint1.set(mFirstCurveStartPoint.x + CURVE_CIRCLE_RADIUS + (CURVE_CIRCLE_RADIUS / 4), mFirstCurveStartPoint.y);
    // the coordinates (x,y)  of the 2nd control point on a cubic curve
    mFirstCurveControlPoint2.set(mFirstCurveEndPoint.x - (CURVE_CIRCLE_RADIUS * 2) + CURVE_CIRCLE_RADIUS, mFirstCurveEndPoint.y);

     mPath.reset();
    mPath.moveTo(0, 0);
    mPath.lineTo(mFirstCurveStartPoint.x, mFirstCurveStartPoint.y);

    mPath.cubicTo(mFirstCurveControlPoint1.x, mFirstCurveControlPoint1.y,
            mFirstCurveControlPoint2.x, mFirstCurveControlPoint2.y,
            mFirstCurveEndPoint.x, mFirstCurveEndPoint.y);

有没有办法使用 Xml 布局来做到这一点

【问题讨论】:

    标签: java android design-patterns


    【解决方案1】:

    由于声誉低,我无法添加 cmets,请查看此link

    如果您要使用 Java here,请添加另一个链接,在 Areas 部分中有一些很好的示例,如何使用 setVisible 实现您的形状。

    【讨论】:

    • @Developer 我从来没有尝试过用xml来做,我没有经验,但我找到了一些例子:example_for_shapesexample_for_curving_edges,试试看。编辑:将背景设置为蓝色或灰色,然后选择要创建的形状并用颜色填充。
    【解决方案2】:

    如果您有 svg 格式的图像,请使用 Asset Studio 将其转换为 xml drawable。否则,使用这样的代码:

    <vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="500dp"
        android:height="300dp"
        android:viewportWidth="500"
        android:viewportHeight="300">
      <path
          android:pathData="M0,0h500v300h-500z"
          android:fillColor="#e3e3e3"/>
      <path
          android:pathData="M0,80C0,250 487,104 550,247L500,300L0,300"
          android:fillColor="#3e47cb"/>
    </vector>
    
    

    【讨论】:

      猜你喜欢
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 2012-07-09
      • 1970-01-01
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多