我想创建一个进度条,如图中指定的。我对创建自定义视图的想法很少。我查了很多教程,但找不到起点。我没有关于进度条的图片。我应该画它。我试图覆盖提取方法,但我无法得到确切的外观。自定义进度条(无图像)
以下是图像:
感谢您的帮助
我想创建一个进度条,如图中指定的。我对创建自定义视图的想法很少。我查了很多教程,但找不到起点。我没有关于进度条的图片。我应该画它。我试图覆盖提取方法,但我无法得到确切的外观。自定义进度条(无图像)
以下是图像:
感谢您的帮助
首先,您只需要加载弧的一个图像,因为它们是可复制的。
http://developer.android.com/guide/topics/ui/custom-components.html
public class CustomView extends View
{
public CustomView(Context context)
{
super(context);
}
protected void onDraw(Canvas canvas)
{
canvas.drawBitmap(REFERENCETIBITMAPHERE, 0, 0, null);
}
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
setMeasuredDimension(measureWidth(widthMeasureSpec), measureHeight(heightMeasureSpec));
}
private int measureWidth(int measureSpec)
{
int preferred = REFERENCETIBITMAPHERE.getWidth();
return getMeasurement(measureSpec, preferred);
}
private int measureHeight(int measureSpec)
{
int preferred = REFERENCETIBITMAPHERE.getHeight();
return getMeasurement(measureSpec, preferred);
}
private int getMeasurement(int measureSpec, int preferred)
{
int specSize = MeasureSpec.getSize(measureSpec);
int measurement = 0;
switch(MeasureSpec.getMode(measureSpec))
{
case MeasureSpec.EXACTLY:
measurement = specSize;
break;
case MeasureSpec.AT_MOST:
measurement = Math.min(preferred, specSize);
break;
default:
measurement = preferred;
break;
}
return measurement;
}
}
您需要创建自己的方法来接收某种指示加载进度的值,然后相应地重绘。
例如:
protected void onDraw(Canvas canvas)
{
// Where loadProgress is an int of some sort.
for(int i = 0; i < loadProgress; i++)
{
canvas.drawBitmap(REFERENCETIBITMAPHERE, REFERENCEBITMAPHERE.getWidth() * i, 0, null);
}
}
我希望这有助于。 =)
使用this链接和Drawable Animation。 并看到堆栈溢出的this链接。我认为这些链接对你很有用
请试试这个。
private void showProgressDialog() {
pDlg = new ProgressDialog(activity);
pDlg.setMessage(processMessage);
pDlg.setMax(100);
pDlg.setProgressDrawable(c.getResources().getDrawable(R.drawable.my_progress_bar));
pDlg.setCancelable(false);
pDlg.show();
}
图像= view.getResources()。getDrawable(R.drawable.my_progress_bar)
你想创建自己的进度,那么你就可以覆盖任何视图类,重写的onDraw方法和写它下来你自己的代码。
如果你需要一些例子,那么我会为你提供。
谢谢..我会参考你的代码,并试试看 –