1

私はプログラムでスクロールバーを生成しており、色を変更するスタイルを定義しているので、私の質問は当然です:スクロールバーのスクロールバースタイルをどのように設定しますか?

ProgressBar progressBar = new ProgressBar(this, null, Android.Resource.Attribute.ProgressBarStyleHorizontal);
// I tried ProgressBar progressBar = new ProgressBar(this, null, Android.Resource.Drawable.myprogressbar); but it doesn't work
    progressBar.Progress = 25;
    linearLayout.AddView(progressBar);

私のスタイルのパスは、android:attr/progressBarStyleHorizontalどうすればこれを作成できますか?

XML コード (プログラムで作成する必要があります) は次のとおりです。

<ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:progressDrawable="@drawable/myprogressbar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar1"
        android:progress="50"
        android:startColor="#ffffff"
        android:endColor="#ff1997e1" />

編集:

置いた:

ProgressBar progressBar = new ProgressBar(this, null, Resource.Drawable.myprogressbar);

しかし、今はアプリにバーが表示されていません:-(

編集:

私もそのコードをテストしましたが、何も表示されません:

var progressBar = new ProgressBar(this, null, Resource.Drawable.myprogressbar)
                {
                    Progress = 25,
                    LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FillParent, ViewGroup.LayoutParams.WrapContent),
                };                
                linearLayout.AddView(progressBar);

そして、プログレスバーの作成後に次を使用してプログレスドローアブルを設定しようとすると:

progressBar.ProgressDrawable = Resource.Drawable.myprogressbar;

私は持っている:

タイプ 'int' を 'Android.Graphics.Drawables.Drawable' に暗黙的に変換することはできません。明示的な変換が存在します (キャストがありませんか?)

最終編集:

これが私の最後のコードです:

// progressbar with custom style (Resources/Drawable/myprogress.xml)
                    ProgressBar progressBar = new ProgressBar(this, null, Android.Resource.Attribute.ProgressBarStyleHorizontal)
                    {LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FillParent, ViewGroup.LayoutParams.WrapContent)};
                    progressBar.ProgressDrawable = Resources.GetDrawable(Resource.Drawable.myprogressbar);
                    // Compute for the percent of this usage (to assign it to the progressbar)
             progressBar.Progress = 33;
                    linearLayout.AddView(progressBar);
4

1 に答える 1

2

ProgressBarを設定し忘れたため、 は表示されませんLayoutParameters。次のコードは私にとってはうまくいきます。ProgressBar色々なスタイルで試してみました。

var myLinearLayout = FindViewById<LinearLayout>(Resource.Id.myLinearLayout);

var progressBar = new ProgressBar(this, null, Android.Resource.Attribute.ProgressBarStyleLarge)
    {
        Progress = 25,
        LayoutParameters =
            new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FillParent, ViewGroup.LayoutParams.WrapContent)
    };

myLinearLayout.AddView(progressBar);

EDIT: 自分のものを渡すにDrawableprogressBar.ProgressDrawable、エラーが示すように、最初にロードする必要があります。

progressBar.ProgressDrawable = Resources.GetDrawable(Resource.Drawable.myprogressbar);
于 2013-04-17T20:34:54.243 に答える