Qstairs

現役AIベンチャーCTOの知見、画像認識(人工知能、Deep Learning)を中心とした技術ノウハウをアップしていきます

広告

【Android】棒グラフを作ってみた

棒グラフを描画する処理を作ってみました。

作り方は意外と簡単で、
まずは、Viewクラスを継承したGraphViewクラスを作成します。
Viewクラスを継承すると、下のソースのようにコンストラクタを3つ作る必要があります。
そして、onDrawをオーバーライドし、
onDrawに棒グラフを描画する処理を加えます。

public class GraphView extends View {
    public GraphView(Context context) {
        super(context);
    }
    public GraphView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public GraphView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
    }
}


そして、実際の棒グラフの処理ですが、
今回は12か月分の各月の棒グラフを描画することを想定した処理にしています。
ソースが下のものになります。
 #このソースはかなり汚いので、見直す必要がありますね

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        // Viewの幅、高さを知る
        int width = this.getWidth();
        int height = this.getHeight();

        Paint paint = new Paint();
        // 色指定(アルファチャネル、赤、緑、青)
        paint.setColor(Color.argb(100, 255, 0, 0));
        // 線の太さ
        paint.setStrokeWidth(width / 13);
        for(int i=0;i<12;i++) {
            canvas.drawLine((width / 13/2)+i*width/12, height, (width / 13/2)+i*width/12, height/2, paint);
            canvas.drawText(i+1+"月", i*width/12, height, paint);
        }
    }


作成したGraphViewをレイアウトに追加し、
実行すると以下のようなグラフが描画されます。
 #見栄えはよくありません...

f:id:qstairs:20160331003826j:plain:w500


広告