Android自定义View模拟并实现3D柱状图
发布日期:2021-06-29 11:46:16 浏览次数:2 分类:技术文章

本文共 1945 字,大约阅读时间需要 6 分钟。

先看效果图

呈上代码:

  • 自定义View类
public class MyBarView extends View {    private Paint barPaint;                             //柱状图画笔    private Paint shadowPaint;                          //阴影画笔    private int xOffset=1,yOffset=1;                    //x和y方向的偏移量    private int startX=100,startY=400,endX=200,endY=1000;    private int layerNum=25;                            //画布的层数    private int barMargin=50;                           //每个柱状体之前的间隔    private List
percents=new ArrayList<>(); //每种数据的数值,用于计算比例,画出柱状体高度 private int perSum; //每种数据数值的总和 public MyBarView(Context context,int... pers){ super(context); for(int i=0;i
=1;j--){ //从后往前画 canvas.drawRect(startX+xOffset*j,nowStartY-yOffset*j,endX+xOffset*j,endY-yOffset*j,barPaint); if(j==1||j==layerNum) //画阴影 canvas.drawRect(startX+xOffset*j,nowStartY-yOffset*j,endX+xOffset*j,endY-yOffset*j,shadowPaint); } int length=endX-startX; //矩形边长 startX+=length+barMargin; //计算下一个柱状体的左上角x点的值 endX+=length+barMargin; //计算下一个柱状体的右下角x点的值 } } private void init(){ //初始化控件 barPaint=new Paint(); barPaint.setStyle(Paint.Style.FILL); barPaint.setColor(Color.RED); shadowPaint=new Paint(); shadowPaint.setStyle(Paint.Style.STROKE); shadowPaint.setStrokeWidth(1); shadowPaint.setColor(Color.parseColor("#515151")); }}
  • MainActivity中创建该View
public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView(){        MyBarView myBarView=new MyBarView(this,10,20,30,50,60,80);        ((FrameLayout)(findViewById(R.id.frame))).addView(myBarView);    }}
  • 最后是布局文件

 

转载地址:https://blog.csdn.net/zz51233273/article/details/107235215 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android Zxing二维码自定义界面(继承Capture类)
下一篇:自定义View简单实现图片的手指移动和两指缩放

发表评论

最新留言

不错!
[***.144.177.141]2024年04月03日 05时15分41秒