[英]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.