答えて
脳卒中(すなわち、内側、中央または外)の位置を制御することはできませんようです。詳細はを参照してください: Android Paint stroke width positioning
あなたが助けをCornerPathEffectクラスを使用することができ、例えば
final RectF rectF = new RectF(halfStrokeWidth, halfStrokeWidth, width - halfStrokeWidth, height - halfStrokeWidth);
canvas.drawRoundRect(rectF, roundX, roundY, paint);
を描きながら私のソリューションは、ストローク幅をオフセットさ!一例として丸みのある形状を描く。
canvas.drawRoundRect()メソッドを使用して半径を持つ背景色を描画し、ペイントでStyle.FILLを設定すると、円形の矩形が得られます。そして、同じメソッドを使用してStyle.STROKEとペイントの設定の幅で丸い四角形の枠線を描画すると、境界線を取得できます。
コード:
はのはCornerPathEffectを試してみましょう::、それはいくつかの背景と境界の間のオフセットしている私が欲しい1今、それがどのように見える
mBackgroundRectF.set(0, 0, mWidth, mHeight);
canvas.drawRoundRect(mBackgroundRectF, mRadius, mRadius, mBackgroundPaint);
// edge ajustment because paint stroke style is center align
float edge = mBorderWidth/2;
mBackgroundRectF.set(edge, edge, mWidth - edge, mHeight - edge);
canvas.drawRoundRect(mBackgroundRectF, mRadius, mRadius, mBorderPaint);
ではありません
mBackgroundRectF.set(0, 0, mWidth, mHeight);
canvas.drawRoundRect(mBackgroundRectF, mRadius, mRadius, mBackgroundPaint);
// edge ajustment because paint stroke style is center align
float edge = mBorderWidth/2;
mBackgroundRectF.set(edge, edge, mWidth - edge, mHeight - edge);
// use CornerPathEffect and then use drawRect() method
mBorderPaint.setPathEffect(new CornerPathEffect(mRadius/2));
canvas.drawRect(mBackgroundRectF, mBorderPaint);
今すぐ正しく見えます。
痛みのストロークの幅を2倍にすると問題を解決できます! – YXP
使用Canvas#clipPath(Path, Op)
。ただし、Android 3.0およびreintroduced in 4.3では、ハードウェアアクセラレーションキャンバス内のパスへのクリッピングのサポートが削除されていることに注意してください。明らかに3.0〜4.2のためにworkaroundがありましたが、私はそれをテストする方法がありません。
- 1. ストロークとパスの比較
- 2. パス内のストロークを色分けする方法は?
- 3. コアグラフィックス:ストローク時の丸いパス間のギャップ
- 4. Android GestureOverlay(縦横ストローク)
- 5. は、パスのストロークと影(iOS版)
- 6. マップキックオーバーレイビューのパスをストロークできません
- 7. Android:ストロークの余白を作成する形のストローク
- 8. (Android)内部ストレージのパス/ Androidを検索
- 9. div内のSVGストロークの問題
- 10. context2d.strokeText()は、FF3.6/4の下のパスをストロークします。
- 11. SVGパスのストロークを背景イメージにする方法は?
- 12. マルチバインドが機能しない - パスのストロークが変わらない
- 13. 可変ストローク幅でパスを描く方法
- 14. パターンカラーを使用してブラシテクスチャをシミュレートするパスをストロークする
- 15. HTMLキャンバスでストロークをパスに変換する
- 16. Cocos2dのストローク
- 17. アニストンの軸ストローク?
- 18. Androidアプリケーションファイルのパス
- 19. CAShapeLayerストロークは
- 20. ドローイングペンはJavaのスイングを使用してストローク...ストロークは
- 21. Androidのスタジオ・パス・エラー
- 22. MKMapView内のカスタムコアグラフィックスオーバーレイ:ストローク楕円を表示できません
- 23. マスクのUIView - ストロークのみ
- 24. バインドItemSourcesのプロパティのストローク
- 25. GLSLの2D Rectangleのストローク
- 26. 2色ストローク無し
- 27. ストローク付きSVGマスク
- 28. 楕円ストロークの背景色
- 29. ストロークC#の概要は?
- 30. 形状Drawableのストローク幅
私はこの問題を理解していない、より具体的になる可能性がありますか? 「ストロークのすべてが、ストロークの内側と外側の半分ではなく、パスの内側にある」とはどういう意味ですか? – Marek
黒で10ピクセル幅のストロークで図形を描画し、幅が5ピクセルの線を描いた図形を赤で描画すると、赤のパスは黒のパスの幅の半分になります。真ん中では、ストロークの半分が形状の境界の内側にあり、半分が外側にあります。代わりに私がしたいのは、ストローク全体が形状境界の内側にあることです。上記の例では、これは赤いストロークが黒いストロークの片側にあることを意味します。形状境界に最も近い側 – user2430147