3

Xamarinフォームに角を丸めたプログレスバーを表示したいとします。Xamarinフォームで角を丸めたプログレスバーを作成する方法

class CustomProgressBarRenderer: ProgressBarRenderer 
{ 
    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e) 
    { 
     base.OnElementChanged(e); 
     Control.ProgressTintColor = Color.FromRgb(255, 201, 74).ToUIColor(); 
    } 

    public override void LayoutSubviews() 
    { 
     base.LayoutSubviews(); 
     var X = 1.0f; 
     var Y = 7.0f; 
     CGAffineTransform transform = CGAffineTransform.MakeScale(X, Y); 
     this.Transform = transform; 
     this.ClipsToBounds = true; 
     this.Layer.MasksToBounds = true; 
     this.Layer.CornerRadius = 5; // This is for rounded corners. 
    } 
} 

Androidで同じようにするにはどうしたらよいですか? これは、進行状況バー(丸い角)を表示する方法です。 Xamarinで角を丸くしてプログレスバーを作成する方法

enter image description here

+0

あなたはiOS' 'この'進捗bar'を使用するときにのみ、私が知っている、画像を投稿してくださいもらえますか?効果はあなたが何を望んでいるのか理解することができます。 –

+0

オリジナルの投稿@ YorkShen-MSFTに画像を追加しました – Debasish

答えて

3

を形成しますが、この機能を実装するためにあなたのアンドロイドProgressBarDrawableを追加することができます。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!--set progressbar backgound style--> 
    <item 
     android:id="@android:id/background" 
     android:drawable="@drawable/progress_bar_background" /> 

    <!--set progressbar schedule style--> 
    <item android:id="@android:id/progress"> 
     <scale 
      android:drawable="@drawable/shape_progressbar_progress" 
      android:scaleWidth="100%" /> 
    </item> 

</layer-list> 

Drawableの\のprogress_bar_background.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <corners android:radius="20dp" /> 
    <solid android:color="#FFCBC2C2" /> 
</shape> 

Drawableの\のshape_progressbar_progress.xml

はあなたのProgressBarDrawableの\ bar_color.xmlのスタイルを設定します

<corners android:radius="20dp" /> 
    <solid android:color="#3F8CC4" /> 
    <stroke 
     android:width="0dp" 
     android:color="#FFFFFF"></stroke> 
</shape> 

あなたCustomProgressBarRendererでそれを使用する:

public class CustomProgressBarRenderer : ProgressBarRenderer 
{ 
    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e) 
    { 
     base.OnElementChanged(e); 

     if(Control != null) 
     { 
      var progressBar = Control as Android.Widget.ProgressBar; 
      var draw = Resources.GetDrawable(Resource.Drawable.bar_color); 
      progressBar.ProgressDrawable = draw; 
     } 
    } 
} 

効果:

enter image description here

関連する問題