2017-05-05 13 views
0

프로그래밍 방식으로 배경 및 테두리를 사용자 지정 색으로 그릴 수 있도록 ShapeDrawable을 확장하는 사용자 지정 클래스를 사용하고 있습니다.프로그래밍 방식으로 획 스타일로 페인트 아래쪽을 비활성화 할 수 있습니까?

코드 :

public class CustomBorderDrawable extends ShapeDrawable { 
private Paint fillpaint, strokepaint; 
private int WIDTH = 3; 

public CustomBorderDrawable(Shape s) { 
    super(s); 
    fillpaint = this.getPaint(); 
    strokepaint = new Paint(fillpaint); 
    strokepaint.setStyle(Paint.Style.STROKE); 
    strokepaint.setStrokeWidth(WIDTH); 
    strokepaint.setARGB(255, 0, 0, 0); 
} 

@Override 
protected void onDraw(Shape shape, Canvas canvas, Paint fillpaint) { 
    shape.draw(canvas, fillpaint); 
    shape.draw(canvas, strokepaint); 
} 

public void setFillColour(int c){ 
    fillpaint.setColor(c); 
} 

public void setBorderColour(int c){ 
    strokepaint.setColor(c); 
} 

public void setStrokeWidth(int px){ 
    this.WIDTH = px; 
    strokepaint.setStrokeWidth(WIDTH); 
} 

public void setBottomEnable(boolean enable){ 
    //TODO 
}} 

당신은 내가 내 strokepaint의 하단 부분을 사용하거나 사용하지 할 수 있도록 기능을 추가 할 볼 수 있듯이.

나는 프로그래밍 방식으로 어떻게 XML 솔루션을 발견 했습니까?

해결 방법은 내 경계의 맨 앞에 막대를 놓을 수도 있지만 그 방법을 모르겠습니다.

답변

0

스트로크를 비활성화하려면 setStrokeWidth (0)으로 전화하십시오. 너비를 0으로 설정하면 획을 표시하지 않습니다.

+0

나는 모든 획을 비활성화하고 싶지 않습니다. 하단 부분 만 비활성화하려고합니다. – Firerazzer

+1

canvas.drawRect()를 사용하여 모양에 직사각형을 그려서 최종선을 활성화 및 비활성화 할 수 있습니다. 모양에 따라 시작점과 끝점을 계산해야합니다. 당신과 함께 OnDraw()에서 canvas.drawRect를 호출하십시오. – Sonam

+0

@ Sonam에게 감사하지만, 내가 말했듯이, 어떻게 해야할지 모르겠다 ... 나는 결코 안드로이드에서 그릴 수있는 페인트, 캔버스 및 기타 도구를 사용하지 않습니다. 나와 같은 초보자를위한 연구 트랙이나 tuto를 줄 수 있습니까? – Firerazzer