Android实现多个连续带数字圆圈效果

  

有项目需求需要绘制多个圆圈,并且使用连续的数字对其排列起来,也就是好多排的圆圈。

  

首先看一下效果图:

  

一排设置为8个,一共有53个的:

  

 Android实现多个连续带数字圆圈效果

  

一排设值为5个的,一共有153个:

  

 Android实现多个连续带数字圆圈效果

  

可以根据总的个数和每排个数自动调节圆圈的大小,并且根据传入的监听事件作出不同的点击效果。

  

思路很简单,首先需要画一个圆出来:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;形状   xmlns: android=" http://schemas.android.com/apk/res/android "   android:形状=巴衷病?   android: useLevel=" false "比;   & lt;填充   android:左=" 1 dp "   android:顶级=" 1 dp "   android:对=" 1 dp "   android:底部=" 1 dp/比;      & lt;中风   android:宽度=" 1 dp "   android:颜色=癅android:颜色/黑色/比;   & lt;大小android:宽度=" 10 dp”   android:身高=" 10 dp/比;   & lt;/shape>      之前      

然后创建TextView,设置TextView的背景为这个可拉的即可。

  

可以根据屏幕的总宽度和每排需要放置的圆个数,计算出每一个圆的合适大小,然后设置每个圆之间的差额为这个圆的十分之一,所以这个圆的最后大小应该为平均值的十分之八。

  

然后使用LinearLayout布的局,动态加载多个TextView,每个TextView设置好对应的属性即可。

  

由于可能圆的个数过多,所以需要滚动视图来进行嵌套,从而支持滑动事件,需要注意的就是滚动视图下面只能有一个子节点。

  

完整代码:

        进口android.content.Context;   进口android.os.Build;   进口android.support.annotation.RequiresApi;   进口android.util.Log;   进口android.view.Gravity;   进口android.view.View;   进口android.view.ViewGroup;   进口android.view.WindowManager;   进口android.widget.LinearLayout;   进口android.widget.ScrollView;   进口android.widget.TextView;/* *   *由叶子>   进口android.os.Build;   进口android.os.Bundle;   进口android.support.annotation.RequiresApi;   进口android.support.v7.app.AppCompatActivity;   进口android.view.View;   进口android.widget.LinearLayout;   进口android.widget.TextView;   进口android.widget.Toast;      公开课MainActivity延伸AppCompatActivity {      私人LinearLayout mMainLayout;      @RequiresApi (api=Build.VERSION_CODES.JELLY_BEAN)   @Override   保护无效alt=" Android实现多个连续带数字圆圈效果">

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Android实现多个连续带数字圆圈效果