私はAndroidが初めてで、カスタムビュー(キャンバス付き)に描画しようとしています。私はそこにいくつかの線と四角形を持っています。ポイントは、ビュー全体に角を丸くしたいのですが、ビューに描画していて、図面がリソースを介して追加された丸みを帯びた角の上にあるため、うまく機能しません。ビュー全体をカバーする丸みを帯びた角を追加する可能性はありますか?
よろしくお願いします。助けてくれてありがとう!
私はAndroidが初めてで、カスタムビュー(キャンバス付き)に描画しようとしています。私はそこにいくつかの線と四角形を持っています。ポイントは、ビュー全体に角を丸くしたいのですが、ビューに描画していて、図面がリソースを介して追加された丸みを帯びた角の上にあるため、うまく機能しません。ビュー全体をカバーする丸みを帯びた角を追加する可能性はありますか?
よろしくお願いします。助けてくれてありがとう!
public class RoundCornerView extends View{
public RoundCornerView(Context context) {
super(context);
}
public RoundCornerView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public RoundCornerView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
protected void onDraw(android.graphics.Canvas canvas)
{
Paint paint = new Paint();
paint.setAlpha(255);
canvas.translate(0, 30);
paint.setColor(Color.BLUE);
Path mPath = new Path();
mPath.addRoundRect(new RectF(0, 0, 100,100),20,20, Path.Direction.CCW);
canvas.clipPath(mPath, Region.Op.INTERSECT);
paint.setColor(Color.GREEN);
paint.setAntiAlias(true);
canvas.drawRect(0, 0, 120,120,paint);
}
}
クリップパスを使用してみてください。ただし、3.0 以降の補足として、マニフェストで hardwareAccelerated をオフにする必要があります。
android:hardwareAccelerated="false"
そのための解決策があります。設立されたら、追加としてここに投稿します