2017-05-05 2 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

私はあなたがcanvas.drawRect()を使用して形状に四角形を描画することにより、ボトムラインを有効または無効にすることができる唯一の下部 – Firerazzer

+1

を無効にしたい、すべてのストロークを無効にしたくありません。あなたの形状に応じて開始点と終了点の計算を行う必要があります。あなたの状態でOnDraw()のcanvas.drawRectを呼び出します。 – Sonam

+0

@Sonamに感謝しますが、私が言ったように、私はそれをどうするか考えていません...私は決してペイント、キャンバス、アンドロイドで描画するための他のツールを使用していません。あなたは私のような初心者のための調査トラックまたはtutoを私に与えることができますか? – Firerazzer

関連する問題