Android Dialog 設定字型大小

來源:互聯網
上載者:User

最近在做一個Android的項目,由於經驗不足,往往會遇到很多難以解決的問題,就喜歡上CSDN查閱資訊,很多時候還是都看到了好的文章順利解決了問題,我也會把那些對我有協助的文章收藏。 不巧這次又遇到了一個問題,先看下面圖片: 這是我在做登入頁面的時候,調用系統的ProgressDialog 進行等待,可是看起來很不協調,左邊的等待圖片過大,右邊文字過小,看起來老彆扭,雖然功能上不存在什麼問題,但是我有強迫症,看不順的就像弄掉。可是找了好久,沒發現 ProgressDialog  有一個方法是可以設定字型的。 於是我又來CSDN尋找解決方案,可是找了好久,翻了好幾頁都沒看到想要的結果,心冷了,找到的都說ProgressDialog 可以自訂一個View,在layout定義一個布局,然後設定到ProgressDialog 中,這確實是一個解決辦法,可是對我來說頗顯麻煩,我只是要一個等待效果,改一下字型,費不著去寫一個layout,在重寫一個ProgressDialog 吧。 最後我想想,可以設定ProgressDialog  的layout 那麼應該也可以擷取他的View吧,果然Dialog 就有一個擷取View的方法:  

public abstract View getDecorView ()   Added in API level 1  Retrieve the top-level window decor view (containing the standard window frame/decorations and the client's content inside of that), which can be added as a window to the window manager.     Note that calling this function for the first time "locks in" various window characteristics as described in 
  只要有了View 我就可以找到其中的TextView,並設定相應的字型大小,一下是我的實現代碼: 
 /**  * 顯示 進度對話方塊  * @param message 訊息  * @param cancel 是否可取消  * @param textsize 字型大小  */  protected final void showProgressDialog(String message,boolean cancel,int textsize)  {      // TODO Auto-generated method stub      mProgress = new ProgressDialog(this);      mProgress.setMessage(message);      mProgress.setCancelable(cancel);      mProgress.setOnCancelListener(null);      mProgress.show();        setDialogFontSize(mProgress,textsize);  }  private void setDialogFontSize(Dialog dialog,int size)  {      Window window = dialog.getWindow();      View view = window.getDecorView();      setViewFontSize(view,size);  }  private void setViewFontSize(View view,int size)  {      if(view instanceof ViewGroup)      {          ViewGroup parent = (ViewGroup)view;          int count = parent.getChildCount();          for (int i = 0; i < count; i++)          {              setViewFontSize(parent.getChildAt(i),size);          }      }      else if(view instanceof TextView){          TextView textview = (TextView)view;          textview.setTextSize(size);      }  }  

 

最後看: 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.