我正在使用Android Studio 2.1.2来创建Android应用程序。在我的应用程序中,我需要在android视图中创建一个充满红色的圆圈。我尝试使用像
这样的画布protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int x = getWidth();
int y = getHeight();
int radius = x / 2;
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
paint.setStrokeWidth(2);
canvas.drawPaint(paint);
paint.setColor(Color.parseColor("#CD5C5C"));
canvas.drawCircle(x / 2, y / 2, radius, paint);
}
在onCreate()
中,我添加了
setContentView(new SampleView(this));
SampleView
是一个包含onDraw()
的类。有没有其他方法可以做同样的事情,而不使用canvas
?
答案 0 :(得分:2)
您可以创建形状xml并将其指定为线性布局
有点像这样
<LinearLayout
android:background="@drawable/circle_border"
android:layout_width="100dp"
android:layout_height="100dp">
</LinearLayout>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape android:shape="oval">
<solid android:color="@color/red" />
</shape>
</item>
</selector>
这将绘制一个圆圈
希望这有帮助
答案 1 :(得分:1)
首先,您需要在drawable
中创建 custom_circle.xml 。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/red" />
</shape>
然后你可以在布局中使用它
<LinearLayout
android:id="@+id/button1"
android:layout_width="20sp"
android:layout_height="20sp"
android:layout_gravity="center"
android:background="@drawable/custom_circle"
android:padding="5dp"
android:visibility="gone" />
答案 2 :(得分:1)
从xml创建一个drawable,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#FF0000"/>
</shape>
如果您愿意,您还可以在此drawable中设置尺寸和笔划。然后在布局中添加ImageView
(或任何你想要的)并将drawable设置为:
<ImageView
android:src="@drawable/your_drawable" \>