信号图标显示

 

状态栏上信号图标的处理在SignalClusterView.java中,这个类继承了LinearLayout,完成对其内包含的各式图标的布局。
类中,主要分两个方面进行图标显示与更新,Wifi与Mobile。
ImageView mWifi, mWifiActivity;
ImageView mMobile, mMobileActivity, mMobileType;
该类实现了接口NetworkController.SignalCluster,外界可以通过这个接口来设置WiFi及信号图标
public void setWifiIndicators(boolean visible, boolean connected, int strengthIcon, int activityIcon, String contentDescription);
public void setMobileDataIndicators(boolean visible, int strengthIcon, boolean mDataConnected, int activityIcon, int typeIcon, String contentDescription, String typeContentDescription, int phoneColor, int phoneId);
public void setIsAirplaneMode(boolean is);
根据设置的相关属性,调用apply()来进行相关界面的显示、更新。

信号图标区域的布局文件:
res/layout/signal_cluster_view.xml
其中,主要包含两大块:
wifi:WiFi图标及数据流向;
<FrameLayout android:id=”@+id/wifi_combo">
 <ImageView android: />
 </FrameLayout>
</LinearLayout>
以上为UI处理过程


在类NetworkController中,会接收到下层上报的关于数据连接相关的信息。其注册了对Phone状态的监听:PhoneStateListener.LISTEN_DATA_CONNECTION_STATE,PhoneStateListener.LISTEN_DATA_ACTIVITY;
接收广播消息:ConnectivityManager.CONNECTIVITY_ACTION;

通过接收相关消息(广播),调用方法refreshView(int phoneId)来设置相关的信号图标,包含:
Airplane: mAirplaneMode
Wifi: mWifiActivityIcon, mWifiIcon
Mobile: mMobileActivityIconId, mDataSignalIconId
并通过接口SignalCluster调用SingalClusterView中实现的方法进行显示与更新。

 

相关文章:

  • 2022-01-01
  • 2021-12-12
  • 2021-05-10
  • 2021-12-03
  • 2022-01-14
  • 2021-06-06
  • 2021-05-29
  • 2021-12-07
猜你喜欢
  • 2022-12-23
  • 2021-12-10
  • 2022-12-23
  • 2021-08-30
  • 2021-10-19
  • 2021-10-28
相关资源
相似解决方案