Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Draw text inside a circle

I'm working on an Android application and I want to draw a circle with text inside. I want the fill to be white with a black boarder and black text. Right now I have a ShapeDrawable:

mDrawable = new ShapeDrawable(new OvalShape());
mDrawable.getPaint().setColor(0xFFFFFF);

This however makes the whole circle white (and with a white background you can't see it) and after a while searching as to how you can add text to the shape I can't seem to find an answer that works. I should also note that I will be adding an arbitrary number of circles with different text in each based on user input. Any help would be much appreciated!

like image 887
Ryan Sayles Avatar asked Nov 23 '13 21:11

Ryan Sayles


1 Answers

You can try this alternative method.

Create a drawable file oval.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
   <solid android:color="#fff"/>
   <stroke android:width="2px" android:color="#000"/>
</shape>

Then create a RelativeLayout and set the background with the oval drawable

<RelativeLayout
    android:id="@+id/circle"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_gravity="center"
    android:background="@drawable/oval" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="@string/hello_world" />
</RelativeLayout>

The result will be something like this:

enter image description here

like image 52
Joel Fernandes Avatar answered Sep 29 '22 21:09

Joel Fernandes