第一次写自定义,这个还是比较简单,查了下一般自定义都需要重写onDraw()和onMeasure()方法,这里也无例外。本例中只需在原ProgressBar源码的基础上做一些简单的修改。
原理就是将水平滚动条经过旋转竖起来,需要注意的是经旋转后原来的高变成了现在的宽,高变成了现在的宽。
代码如下:
public class VerticalProgressBar extends ProgressBar
{
public VerticalProgressBar(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public VerticalProgressBar(Context context, AttributeSet attrs)
{
super(context, attrs);
// TODO Auto-generated constructor stub
}
public VerticalProgressBar(Context context)
{
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected synchronized void onDraw(Canvas canvas)
原理就是将水平滚动条经过旋转竖起来,需要注意的是经旋转后原来的高变成了现在的宽,高变成了现在的宽。
代码如下:
public class VerticalProgressBar extends ProgressBar
{
public VerticalProgressBar(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public VerticalProgressBar(Context context, AttributeSet attrs)
{
super(context, attrs);
// TODO Auto-generated constructor stub
}
public VerticalProgressBar(Context context)
{
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected synchronized void onDraw(Canvas canvas)