graph_bar
Android用のグラフのライブラリーもあるみたいですけど、いまいちなのでオリジナルな棒グラフを作成してみます。プログラミングの大した技量が僕には無いので至ってシンプルな棒グラフです。ちなみに、オリジナルな棒グラフは配布中のカウンターアプリにも乗せているので、試してみてください(営業)。


カスタムビューの作成

クラス名は何でも良いんですけど、棒グラフだし、僕のイニシャルはHSなので、HsGraphBarというクラスを作成します。extendsするのは、Viewでもイイ気がするんですが、なんとなくLinearLayoutを拡張します。
package jp.blogcms.livedoor.hsgraph;

import android.content.Context;
import android.graphics.Canvas;
import android.widget.LinearLayout;

public class HsGraphBar extends LinearLayout{
	
	/**
	 * コンストラクター
	 * Viewのクラス内では、getContext()でcontextの取得ができる
	 * 
	 * @param context
	 */
	public HsGraphBar(Context context) {
		super(context);
	}
	
	/**
	 * AddViewなんかで実際にviewが追加されたときに呼び出される
	 * 
	 */
	@Override
	protected void onAttachedToWindow(){
		super.onAttachedToWindow();

	}
	
	/**
	 * タテヨコの大きさを決める時に呼び出される
	 * Viewの大きさを指定したい場合は、ここで指定
	 * 
	 */
	@Override
	protected void onMeasure(int width, int height) {
		super.onMeasure(width, height);
	}
	
	
	/**
	 * レイアウトを決める時に呼び出される
	 * 
	 */
	@Override
	protected void onLayout(boolean changed, int l, int t, int r, int b) {
		super.onLayout(changed, l, t, r, b);
	}
	
	/**
	 * 描画する!
	 * 
	 */
	@Override
	public void onDraw(Canvas canvas) {
		super.onDraw(canvas);
	}
}
Viewのきっと使うであろうイベントです。この上の並んだ順番で、それぞれのメソッドはViewを作成するときに必ず呼び出されます。グラフ作成で大事なのは、onMeasureとonDarawかと思います。使わないイベントは消しちゃって構いません。まぁ、正直なところandroidのViewの生成のされ方に関して、僕も大して理解してません・・・。察しの通り、上記はイベントを書いただけなんで、内容は無いよう・・・。



続きを読む