繁体   English   中英

点内圆可绘制的android吗?

[英]Dot inside round drawable android?

在此处输入图片说明

我有一个textview。我需要通过考虑textview的高度和宽度来使用drawable设置像上面的图像一样的textview的背景。我该如何通过在画布上绘制来创建像上面的背景。另外我还需要更改内部的颜色动态地转圈。

到目前为止我的代码

 public class BackGround extends Drawable {
        private Paint mPaint;
        private Paint mPaint1;


        @Override
        public void draw(Canvas canvas) {
            // Set the correct values in the Paint
            mPaint = new Paint();
            mPaint.setColor(Color.RED);
            mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
            mPaint.setFlags(Paint.ANTI_ALIAS_FLAG);
            mPaint.setAntiAlias(true);


            mPaint1 = new Paint();
            mPaint1.setColor(Color.WHITE);
            mPaint1.setStyle(Paint.Style.FILL_AND_STROKE);
            mPaint1.setFlags(Paint.ANTI_ALIAS_FLAG);
            mPaint1.setAntiAlias(true);

            canvas.drawCircle(canvas.getWidth() / 2, canvas.getHeight() / 2, canvas.getWidth() - (canvas.getWidth() / 4), mPaint);
            canvas.drawCircle(canvas.getWidth() / 2, canvas.getHeight() - (canvas.getHeight() / 6), 5, mPaint1);
        }

        @Override
        public int getOpacity() {
            return PixelFormat.OPAQUE;
        }

        @Override
        public void setAlpha(int arg0) {
        }

        @Override
        public void setColorFilter(ColorFilter arg0) {
        }
    }

编辑@ 2

与XML这样做

<item>
    <shape android:shape="oval" >
        <solid android:color="#000000" />

        <size
            android:height="15dp"
            android:width="15dp" />

        <padding
            android:bottom="5dp"
            android:left="20dp"
            android:right="20dp"
            android:top="40dp" />
    </shape>
</item>

<item>
    <shape android:shape="oval" >


        <stroke
            android:width="5dp"
            android:color="@android:color/transparent" />

        <solid android:color="#f00" />

        <size
            android:height="10dp"
            android:width="10dp" />
    </shape>
</item>

编辑@ 1

尝试这种方式在画布中的圆圈内绘制圆圈

public class MainActivity extends Activity {
Draw draw;
LinearLayout linearLayout;

public void onCreate(Bundle s) {
    super.onCreate(s);
    setContentView(R.layout.test1);
    linearLayout = (LinearLayout) findViewById(R.id.linearLayout);

    draw = new Draw(this);
    linearLayout.addView(draw);
}

public class Draw extends View {
    Paint paint = new Paint();

    Draw(Context context) {
        super(context);
    }

    public void onDraw(Canvas canvas) {
        paint.setColor(Color.BLUE);
        canvas.drawCircle(120, 120, 40, paint);

        paint.setColor(Color.RED);
        canvas.drawCircle(120, 140, 10, paint);
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM