Android可绘制的椭圆形状,中心超出范围

时间:2016-03-24 07:59:11

标签: android android-xml android-drawable

我愿意用半圆声明一个xml drawable。所以椭圆形的中心超出界限: what i want

我尝试使用刻度标记,但我无法让它工作,这就是我所做的。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <scale android:scaleGravity="center">
            <shape android:shape="ring">
                <stroke
                    android:width="2dp"
                    android:color="#C8C8D7"/>
                <size
                    android:width="300dp"
                    android:height="300dp"/>
            </shape>
        </scale>
    </item>
</layer-list>

但它不起作用。

1 个答案:

答案 0 :(得分:0)

我没有设法在xml中生成它。我最终使用画布绘图。

public Drawable generateHeaderBackground(int arcColor) {
    int w = screenWidth;
    x = (int) r.getDimension(R.dimen.header_height);
    Bitmap.Config conf = Bitmap.Config.ARGB_8888;
    Bitmap bmp = Bitmap.createBitmap(w, x, conf);
    Canvas mCanvas = new Canvas(bmp);

    Paint p = new Paint();
    p.setStyle(Paint.Style.STROKE);
    p.setColor(arcColor);
    p.setStrokeWidth(3);
    p.setAntiAlias(true);

    RectF rtt = new RectF(-w / 2, x / 4, w + (w / 2), x * 8);
    mCanvas.drawOval(rtt, p);
    return new BitmapDrawable(getResources(), bmp);
}