在Android中以编程方式绘制圆圈

时间:2016-08-20 06:59:46

标签: android

我正在创建一个应用程序,在片段中我应该绘制一个圆圈。圆圈必须根据数字重复。我的意思是,将从服务器和一些字符串接收一个数字。因此,应该创建一个圆圈,这个数字应该是我收到的数字,并且在点击时每个圆圈上我应该能够为我收到的字符串干杯。

例如,我将得到3号和3号字符串(a,b,c)。 在Fragment中,它应该自动创建3个圆圈,每个圆圈上都有一个字符串名称。
我可以从xml

的文本视图中创建一个圆圈

圈子代码:

<TextView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@+id/textView17"
            android:layout_gravity="center"
            android:background="@drawable/shape"
            android:gravity="center"
            android:shadowColor="@android:color/white"
            android:shadowRadius="10.0"
            android:text="STOP"
            android:textColor="@android:color/black"
            android:textSize="18sp"
            android:layout_below="@+id/carddemo1"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="15dp" />
  

第一张图像是我得到的,而我应该像上面定义的第二张图像一样。

Circle I Created Looks Like enter image description here

2 个答案:

答案 0 :(得分:0)

我不知道我是否得到了问题,但您必须为3个圆圈创建多个文本视图:

<TextView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@+id/textView17"
            android:layout_gravity="center"
            android:background="@drawable/shape"
            android:gravity="center"
            android:shadowColor="@android:color/white"
            android:shadowRadius="10.0"
            android:text="STOP"
            android:textColor="@android:color/black"
            android:textSize="18sp"
            android:layout_below="@+id/carddemo1"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="15dp" />


    <TextView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@+id/textView17"
            android:layout_gravity="center"
            android:background="@drawable/shape"
            android:gravity="center"
            android:shadowColor="@android:color/white"
            android:shadowRadius="10.0"
            android:text="STOP"
            android:textColor="@android:color/black"
            android:textSize="18sp"
            android:layout_below="@+id/carddemo1"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="15dp" />


    <TextView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@+id/textView17"
            android:layout_gravity="center"
            android:background="@drawable/shape"
            android:gravity="center"
            android:shadowColor="@android:color/white"
            android:shadowRadius="10.0"
            android:text="STOP"
            android:textColor="@android:color/black"
            android:textSize="18sp"
            android:layout_below="@+id/carddemo1"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="15dp" />



    <TextView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@+id/textView17"
            android:layout_gravity="center"
            android:background="@drawable/shape"
            android:gravity="center"
            android:shadowColor="@android:color/white"
            android:shadowRadius="10.0"
            android:text="STOP"
            android:textColor="@android:color/black"
            android:textSize="18sp"
            android:layout_below="@+id/carddemo1"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="15dp" />

当然要添加不同的坐标。

答案 1 :(得分:0)

创建您已有的可绘制形状

LinearLayout linearLayout = (LinearLayout)getActivity().findViewById(R.id.myViewGroupId);

为你正在获得的计数器运行一个循环

for (int i = 0; i < counter; i++){
        TextView textView = new TextView(getActivity());
        textView.setBackground(getResources().getDrawable(R.drawable.myShape));
        textView.setText("this is my text from the server");
        linearLayout.addView(textView);
    }