2011-03-31 9 views
8

मेरे पास एक कस्टम दृश्य है जो ViewGroup बढ़ाता है। इसमें ProgressBar और WebView शामिल है। मैं ProgressBar प्रदर्शित कर रहा हूं जबकि WebView लोड हो रहा है।मैं एंड्रॉइड प्रोग्रेसबार का आकार प्रोग्रामेटिक रूप से कैसे सेट करूं?

यह काम करता है, लेकिन ProgressBar बहुत बड़ा है। मैं इसे छोटा कैसे बना सकता हूं?

webView = new WebView(context); 
webView.setWebViewClient(new MyWebChromeClient()); 
webView.loadUrl("file://" + path); 
addView(webView); 

progressBar = new ProgressBar(mContext, null, 
             android.R.attr.progressBarStyleSmall); 
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT); 
progressBar.setLayoutParams(params); 

addView(progressBar); 

उत्तर

19

आप LayoutParams उपयोग कर सकते हैं चौड़ाई और ऊंचाई जो चाहो को बदलने के लिए:

नीचे मेरी गैर काम कर कोड है। test.addView(progressBar,50,50); जहां पहले पैरामीटर चौड़ाई और दूसरा ऊंचाई है:

ProgressBar progressBar = new ProgressBar(teste.this, null, android.R.attr.progressBarStyleHorizontal); 

      LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(300, 10); 

      progressBar.setLayoutParams(params); 
      LinearLayout test = new LinearLayout(getApplicationContext()); 
      test.addView(progressBar); 
      setContentView(test); 

इसके अलावा जब आप एक दृश्य जोड़ने के लिए, आप इस कोड का उपयोग कर सकते हैं।

12

तुम भी एक्सएमएल के भीतर से अपने प्रगति का आकार सेट कर सकते हैं, बस का उपयोग अपने ProgressBar टैग के अंदर android:maxHeight, android:minHeight, android:minWidth और android:maxWidth गुण।

उदाहरण के लिए, इस 35dip और 10dip के लिए चौड़ाई को प्रगति की ऊंचाई सेट हो जाएगा,

<ProgressBar 
    android:id="@+id/progressBar1" 
    style="?android:attr/progressBarStyleLarge" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:layout_centerVertical="true" 
    android:layout_marginLeft="60dip" 
    android:maxHeight="35dip" 
    android:minHeight="35dip" 

    android:minWidth="10dip" 
    android:maxWidth="10dip" 

    android:visibility="visible" /> 
+3

इस काम नहीं कर रहा – Informatic0re

2

easies रास्ता पैमाने से है:

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

    Control.ProgressDrawable.SetColorFilter(Color.FromRgb(182, 231, 233).ToAndroid(), Android.Graphics.PorterDuff.Mode.SrcIn); 
    Control.ProgressTintList = Android.Content.Res.ColorStateList.ValueOf(Color.FromRgb(182, 231, 233).ToAndroid()); 
    Control.ScaleY = 10; // This changes the height 

    } 
} 
2

एक्सएमएल में, शैली सेट , उदाहरण के लिए, शैली = "? एंड्रॉइड: एटीआर/प्रगतिबार्स्टाइल लार्ज":

<ProgressBar 
         android:id="@+id/progressBar3" 
         style="?android:attr/progressBarStyleLarge" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_centerInParent="true" /> 
1

के इसे आजमाइए करते हैं ...

मैं के साथ कुछ padding जोड़ने Progressbar की size तय की है।

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <ProgressBar 
      android:id="@+id/progressBar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:padding="45dp" 
      /> 
     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/category_img" 
      android:scaleType="fitXY" 
      tools:ignore="ContentDescription" /> 
    </RelativeLayout> 

अब इस तरह लग रहा है:

enter image description here

+0

का समायोजन गद्दी हमें आवश्यक आकार में प्रगति बार देता है :) – sunil

संबंधित मुद्दे