有项目需求需要绘制多个圆圈,并且使用连续的数字对其排列起来,也就是好多排的圆圈。
首先看一下效果图:
一排设置为8个,一共有53个的:
一排设值为5个的,一共有153个:
可以根据总的个数和每排个数自动调节圆圈的大小,并且根据传入的监听事件作出不同的点击效果。
思路很简单,首先需要画一个圆出来:
& 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实现多个连续带数字圆圈效果