Android自定义观点展示无线信号强弱指示方法示例

  

  

最近因为工作的需要,要自定义展示无线信号强弱的需要,就通过利用系统广播的方式实现了一个自定义的观点——WifiStateView下面话不多说了,感兴趣的朋友们一起来看看详细的介绍吧。

  

  

 Android自定义观点展示无线信号强弱指示方法示例

  

用不同的图片来表示无线信号的强弱,可以自定义无线信号等级
  

  

图标简陋了点,根据需要来替换即可

     /* *   *叶应是叶   *时间:2017/8/22十八25   *描述:   */公开课WifiStateView延伸AppCompatImageView {      私人WifiManager WifiManager;      私人WifiHandler WifiHandler;//没有开启Wifi或开启了Wifi但没有连接   私有静态最终int LEVEL_NONE=0;//无线信号等级(最弱)   私有静态最终int LEVEL_1=1;//无线信号等级   私有静态最终int LEVEL_2=2;//无线信号等级   私有静态最终int LEVEL_3=3;//无线信号等级(最强)   私有静态最终int LEVEL_4=4;      私人最终字符串标签=癢ifiStateView”;      私有静态类{WifiHandler扩展处理程序//虚引用   私人WeakReferencestateViewWeakReference;      WifiHandler (WifiStateView WifiStateView) {   stateViewWeakReference=new WeakReference<祝辞(wifiStateView);   }      @Override   公共空间handleMessage(消息味精){   WifiStateView WifiStateView=stateViewWeakReference.get ();   如果(wifiStateView==null) {   返回;   }   开关(msg.what) {   案例LEVEL_1:   wifiStateView.setImageResource (R.drawable.wifi_1);   打破;   案例LEVEL_2:   wifiStateView.setImageResource (R.drawable.wifi_2);   打破;   案例LEVEL_3:   wifiStateView.setImageResource (R.drawable.wifi_3);   打破;   案例LEVEL_4:   wifiStateView.setImageResource (R.drawable.wifi_4);   打破;   案例LEVEL_NONE:   默认值:   wifiStateView.setImageResource (R.drawable.wifi_none);   打破;   }   }   }      私人BroadcastReceiver wifiStateReceiver=new BroadcastReceiver () {   @Override   公共空间onReceive(上下文语境,意图意图){   日志。e(标签,“行动”+ intent.getAction ());   开关(intent.getAction ()) {   案例WifiManager.WIFI_STATE_CHANGED_ACTION:   如果(wifiManager.getWifiState ()==WifiManager.WIFI_STATE_DISABLING) {   wifiHandler.sendEmptyMessage (LEVEL_NONE);   }   打破;   案例WifiManager.RSSI_CHANGED_ACTION:   如果(wifiManager.getWifiState ()==WifiManager.WIFI_STATE_DISABLED) {   wifiHandler.sendEmptyMessage (LEVEL_NONE);   返回;   }   WifiInfo WifiInfo=wifiManager.getConnectionInfo ();   int水平=WifiManager.calculateSignalLevel (wifiInfo.getRssi (), 5);   日志。e(标签,“水平:”+级);   wifiHandler.sendEmptyMessage(水平);   打破;   }   }   };         公共WifiStateView(上下文语境){   这(上下文,null);   }      公共WifiStateView(上下文语境,@Nullable AttributeSet attrs) {   这(上下文、attrs 0);   }      公共WifiStateView(上下文语境,@Nullable AttributeSet attrs, int defStyleAttr) {   超级(上下文、attrs defStyleAttr);   wifiManager=(wifiManager) context.getApplicationContext () .getSystemService (Context.WIFI_SERVICE);   wifiHandler=new wifiHandler(这个);   }      @Override   保护无效onAttachedToWindow () {   super.onAttachedToWindow ();   IntentFilter IntentFilter=new IntentFilter ();//无线连接状态变化   intentFilter.addAction (WifiManager.WIFI_STATE_CHANGED_ACTION);//无线信号强度变化   intentFilter.addAction (WifiManager.RSSI_CHANGED_ACTION);   getContext ()。registerReceiver (wifiStateReceiver intentFilter);   }      @Override   保护无效onDetachedFromWindow () {   super.onDetachedFromWindow ();   wifiHandler.removeCallbacksAndMessages(空);   getContext () .unregisterReceiver (wifiStateReceiver);   }      }      

<强>这里提供代码下载:

  

github地址:https://github.com/leavesC/WifiStateView

  

本地下载:http://xiazai.jb51.net/201708/yuanma/WifiStateView (jb51.net) . rar

  

  

以上就是这篇文章的全部内容了,希望本文的内容对各位Android开发者们的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

Android自定义观点展示无线信号强弱指示方法示例