9

I create a ProgressDialog from java code:

mProgressDialog = ProgressDialog.show(this, ..., ... , true);

I want to change the message text size and its color how can I do it?

Med Besbes
  • 2,001
  • 6
  • 25
  • 38

3 Answers3

33

You can use a spannable string and set the color and size for the spannable string. Use the spannable string to set text color and size.

Note: Make sure the font size is not too large to fit in the screen

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_marginBottom="35dp"
    android:layout_marginLeft="56dp"
    android:text="Button" />

</RelativeLayout>

MainActivity

    public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button b= (Button) findViewById(R.id.button1);
    b.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String s= "Hello";
            String title="MyTitle";
            SpannableString ss1=  new SpannableString(title);
            ss1.setSpan(new RelativeSizeSpan(2f), 0, ss1.length(), 0);  
            ss1.setSpan(new ForegroundColorSpan(Color.RED), 0, ss1.length(), 0); 
            SpannableString ss2=  new SpannableString(s);
            ss2.setSpan(new RelativeSizeSpan(2f), 0, ss2.length(), 0);  
            ss2.setSpan(new ForegroundColorSpan(Color.GREEN), 0, ss2.length(), 0); 
            ProgressDialog pd = new ProgressDialog(MainActivity.this);
            pd.setTitle(ss1);
            pd.setMessage(ss2);
            pd.show();
        }

    });



}
   }

enter image description here

OR

You can change the color of the the text by using a custom style

styles.xml

 <style name="NewDialog" parent="@android:style/Theme.Dialog">

<item name="android:windowFrame">@null</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTitleStyle">@null</item>
<item name="android:colorBackground">#ffffff</item>// change background color
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:width">600dip</item>
<item name="android:height">100dip</item>
 <item name="android:textColor">#0FECFF</item>// change color
</style>

In your activity

    ProgressDialog pd = new ProgressDialog(this,R.style.NewDialog);
Nate
  • 31,017
  • 13
  • 83
  • 207
Raghunandan
  • 132,755
  • 26
  • 225
  • 256
7

You can also use: ContextThemeWrapper

For example:

ProgressDialog.show(new ContextThemeWrapper(this, R.style.DialogCustom), "Loading", "Wait please");

<style name="DialogCustom">
    <item name="android:textSize">18sp</item>
</style>
Benjamin L.
  • 178
  • 1
  • 8
0

try like this

private void showProgressDialog() {

    progressDialog = new ProgressDialog(this,R.style.CustomDialog);
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    progressDialog.setMessage("Logging in. Please wait.");
    progressDialog.show();
}

use custome layout

mmBs
  • 8,421
  • 6
  • 38
  • 46
Sunil Kumar
  • 7,086
  • 4
  • 32
  • 50