2017-02-08 19 views
1

Мне нужна эта форма (прямой или любой способ) нарисовать на View android. с одной стороны кривой. с 1 сплошным цветом и прозрачным на изогнутой стороне. как рисовать это?Android draw rect с одной кривой на одной стороне на пользовательском представлении

public class CurveView extends View { 
    @Override 
    protected void onDraw(Canvas canvas) { 
     // how to ???? 
    } 
} 

так:

enter image description here

спасибо.

+2

'canvas.drawPath (путь, краска)' – pskink

+1

Прочитайте информацию на этой странице, [Android] Путь (https://developer.android.com /reference/android/graphics/Path.html), затем напишите код. Если вы столкнулись с ошибкой или результатом, отличным от ожидаемого, вернитесь и задайте конкретный вопрос. – Alex

+0

@Alex android path and graphic сложна и требует длительного времени. можете ли вы помочь мне нарисовать его? – grizzly

ответ

1

решение:

UPDATE:

public class MyView extends View { 

    private Paint paint; 
    private Path path; 

    public MyView(Context context) { 
     super(context); 
     init(); 
    } 

    public init() { 

     path = new Path(); 

     paint = new Paint(); 
     paint.setAntiAlias(true); 
     paint.setDither(true); 
     paint.setStyle(Paint.Style.Fill); 
     paint.setColor(Color.RED); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 

     canvas.drawColor(Color.TRANSPARENT); 
     paint.setShader(null); 

     float width = getWidth(); 
     float height = getHeight(); 

     path.moveTo(0, 0); 

     path.lineTo(0, height); 

     path.lineTo(width, height); 

     path.lineTo(width, 0); 

     path.cubicTo(4*width/6, 3*height/4, 2*width/6, 3*height/4, 0, 0); 

     paint.setColor(Color.RED); 
     paint.setStyle(Paint.Style.FILL); 
     canvas.drawPath(path, paint); 

    } 

} 
+0

Не могли бы вы показать часть, в которой вы определяете переменную «paint» и «path»? Благодарю. –

+0

@FaustinoGagneten обновленный. проверять, выписываться. после написания этого перестройте свое мнение. – grizzly