4

私はAndroidが初めてで、カスタムビュー(キャンバス付き)に描画しようとしています。私はそこにいくつかの線と四角形を持っています。ポイントは、ビュー全体に角を丸くしたいのですが、ビューに描画していて、図面がリソースを介して追加された丸みを帯びた角の上にあるため、うまく機能しません。ビュー全体をカバーする丸みを帯びた角を追加する可能性はありますか?

よろしくお願いします。助けてくれてありがとう!

4

2 に答える 2

4
    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"

そのための解決策があります。設立されたら、追加としてここに投稿します

于 2013-05-28T12:24:45.153 に答える