不使用画布在android中绘制圆圈和填充颜色

时间:2016-07-14 09:38:36

标签: java android android-studio canvas android-drawable

我正在使用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

3 个答案:

答案 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" \>