Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Dialog 設置字體大小的具體方法

Android Dialog 設置字體大小的具體方法

編輯:關於Android編程

先看下面圖片:

這是我在做登錄頁面的時候,調用系統的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);
        }
    }

最後看效果圖:

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved