首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义进度条(无图像)

自定义进度条(无图像)
EN

Stack Overflow用户
提问于 2012-11-01 21:04:10
回答 3查看 289关注 0票数 1

我想创建一个进度条,如图所示。我对如何创建自定义视图知之甚少。我查阅了很多教程,但找不到起点。我没有关于进度条的图片。应该是我画的。我尝试重写ondraw方法,但我无法获得确切的外观。

如下图所示:

谢谢你的帮忙

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-01 21:17:42

http://developer.android.com/guide/topics/ui/custom-components.html

代码语言:javascript
复制
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;
}
}

您将需要创建自己的方法来接收某种指示加载进度的值,然后相应地进行重绘。

例如:

代码语言:javascript
复制
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);
    }
}

我希望这能帮到你。=)

票数 2
EN

Stack Overflow用户

发布于 2012-11-01 21:16:46

请试一下这个。

代码语言:javascript
复制
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)

票数 1
EN

Stack Overflow用户

发布于 2012-11-01 21:16:56

您希望创建自己的进度条,然后您可以覆盖任何视图类,覆盖onDraw方法并编写您自己的代码。

如果你需要一些例子,那么我会提供给你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13177710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档