先看效果图

呈上代码:

  • 自定义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);    }}
  • 最后是布局文件
<?xml version="1.0" encoding="utf-8"?>    

 

更多相关文章

  1. android 多点触控Demo
  2. Android中GridView的书架效果实现
  3. android.graphics包中的一些类的使用
  4. Android(安卓)学习之Drawable-shape使用方法
  5. Android(安卓)shape属性详细整理
  6. android圆角ImageView的几种实现方式
  7. Android(安卓)绘图基础:Canvas,Paint,RectF,Paint类
  8. Android绘图篇(一)——Canvans基本操作
  9. [置顶] android中自定义View

随机推荐

  1. 使用jQuery隐藏/显示表列
  2. HTML新手求解。关于CSS对于li标签的activ
  3. Jsoup对html文档的解析
  4. HTML5 Canvas 绘图方法整理 【十五、Canv
  5. 在PHP中获取幕布元素ID的文本[重复]
  6. HTML5引擎Construct2技术剖析(六)
  7. 使用jQuery随机化一系列div元素
  8. flah网站发布问题,我是在flash里面直接发
  9. CSS文件filemtime没有调用路径两次
  10. EasyUI学习之输入框