Android執行個體-手機安全衛士(三十九)-自訂多士(文字格式設定、顯示視窗)

來源:互聯網
上載者:User

標籤:

一、目標

  自訂顯示的多士,包括內容文字格式設定、顯示視窗格式。

二、代碼實現

  1、在“顯示號碼歸屬地”服務類(ShowPhoneAddService)中自訂多士方法(取名myToast(String sting)),參數string為需要顯示的字串(註:本例中只需要使用自訂的多士來顯示號碼歸屬地,其他地方不使用,因此在類中建立方法)。在自訂方法中(myToast):

    (1)通過new TextView(Context context)方法定義一個TextView對象(取名view),參數context為應用的上下文(getApplicationContext());

    (2)通過TextView(取名textView)的各種set方法傳入並美化要顯示的字串(sting);

    (3)通過new WindowManager介面下的LayoutParams()對象執行個體化一個WindowManager.LayoutParams對象(取名params),該對象用於設定自訂的多士的顯示視窗參數;

    (4)通過WindowManager.LayoutParams對象(params)的“.屬性 = 值”的方式設定其各項屬性:

      ①視窗寬、高(width、height)均為包裹內容(WindowManager.LayoutParams.WRAP_CONTENT)

      ②視窗的flags屬性設為不擷取焦點(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)、不可觸摸(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE)、保持螢幕開啟狀態(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)等值(同一個屬性的多個值可用且“|”串連)

      ③視窗樣式(format)為半透明(PixelFormat.TRANSLUCENT);

      ④視窗類別型(type)為多士(WindowManager.LayoutParams.TYPE_TOAST);

    (5)在服務類中(ShowPhoneAddService)定義視窗管理者WindowManager對象(取名wm)的成員變數,並在建立(onCreate)方法中通過getSystemService(String name)方法執行個體化(參數name為視窗服務WINDOW_SERVICE),強轉。再在自訂多士方法(myToast)中通過視窗管理者WindowManager對象(wm)的addView(View view, LayoutParams params)方法載入文本視圖(view)和顯示視窗的各項參數(params)至視窗管理者中,用來顯示。

自訂多士方法代碼:

 1 public void myToast(String string){ 2         //設定多士的顯示常值內容和UI 3         TextView view = new TextView(getApplicationContext()); 4         view.setText(string); 5         view.setTextColor(Color.RED); 6         view.setTextSize(25); 7         //設定多士的顯示視窗參數 8         WindowManager.LayoutParams params = new WindowManager.LayoutParams();//建立視窗對象 9         params.height = WindowManager.LayoutParams.WRAP_CONTENT;//設定視窗高度為包裹內容10         params.width = WindowManager.LayoutParams.WRAP_CONTENT;//設定視窗寬度為包裹內容11         params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE//將視窗標記為不擷取焦點12                 |WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE//將視窗標記為不可觸摸13                 |WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;//將視窗標記為保持螢幕開啟狀態14         params.format = PixelFormat.TRANSLUCENT;//視窗樣式為半透明15         params.type = WindowManager.LayoutParams.TYPE_TOAST;//視窗類別型為多士16         //通過文本和視窗載入至視窗管理器中17         wm.addView(view, params);18     }
View Code

 

  2、在服務類(ShowPhoneAddService)中的自訂的來電監聽類(MyPhoneListener)中和去電服務類(OutCallReceiver)裡,通過查詢資料庫擷取號碼歸屬地後,通過自訂的多士方法將歸屬地傳入便可顯示。

傳入代碼;

1 myToast(inComingPhoneAdd);
View Code

 

Android執行個體-手機安全衛士(三十九)-自訂多士(文字格式設定、顯示視窗)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.