1

画像で指定されているプログレスバーを作成したい。カスタムビューを作成する方法についてはほとんどわかりません。たくさんのチュートリアルをチェックしましたが、出発点が見つかりませんでした。プログレスバーに関する画像はありません。描くことになっています。ondrawメソッドをオーバーライドしようとしましたが、正確な外観を得ることができませんでした。

これが画像です:画像

ご協力いただきありがとうございます

4

3 に答える 3

2

まず、複製可能であるため、ローディングアークの画像が1つだけ必要になります。

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);
    }
}

これがお役に立てば幸いです。=)

于 2012-11-01T13:17:41.523 に答える
1

plsはこれを試してみてください。

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)

于 2012-11-01T13:16:46.187 に答える
0

独自のプログレスバーを作成したい場合は、任意のビュークラスをオーバーライドし、onDrawメソッドをオーバーライドして、独自のコードを書き留めることができます。

いくつかの例が必要な場合は、私が提供します。

于 2012-11-01T13:16:56.260 に答える