StatusBarView.java 4.19 KB
package com.sunvote.xpadapp.widget;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

import com.sunvote.statusbar.view.BarItem;
import com.sunvote.xpadapp.R;

public class StatusBarView extends LinearLayout {
    Context mContext;
    //信号图标,基站编号,CH,终端ID,电池电量图标,系统时间,wifi
    BarItem barSignal,barBasestation,barCh,barTerminalId,barBattery,barSystemtime,barWifi;

    public StatusBarView(Context context) {
        this(context, null);
    }

    public StatusBarView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    View view;
    @SuppressLint("NewApi")
    public StatusBarView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context, attrs, defStyle);
    }

    private void init(Context ctx, AttributeSet attrs, int defStyle){
        mContext=ctx;
        LayoutInflater ll = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
        view = ll.inflate(R.layout.status_icon_view, null);
        view.setLayoutParams(lp);

        barSignal =  (BarItem)view.findViewById(R.id.bar_signal);
        barBasestation =  (BarItem) view.findViewById(R.id.bar_basestation);
        barCh =  (BarItem) view.findViewById(R.id.bar_ch);
        barTerminalId =  (BarItem) view.findViewById(R.id.bar_terminalId);
        barBattery =  (BarItem) view.findViewById(R.id.bar_battery);
        barSystemtime =  (BarItem) view.findViewById(R.id.bar_systemtime);
        barWifi=  (BarItem) view.findViewById(R.id.bar_wifi);
        addView(view);
    }

    public void setBackgroundColor(int color){
        view.setBackgroundColor(color);
    }
    /**
     * 设置信号图标
     * @param rssi
     */
    public void setStatusSignal(int rssi){
        barSignal.setIcon(R.mipmap.signal);
        if (rssi < 95){
            barSignal.setIcon(R.mipmap.signal_1);
        }
        if (rssi < 85){
            barSignal.setIcon(R.mipmap.signal_2);
        }
        if (rssi < 75) {
            barSignal.setIcon(R.mipmap.signal_3);
        }
        if (rssi < 65) {
            barSignal.setIcon(R.mipmap.signal_4);
        }
        if (rssi < 55) {
            barSignal.setIcon(R.mipmap.signal_5);
        }
    }

    public void setStatusWifi(int wifi){
        if(wifi > -100) {
            barWifi.setVisibility(VISIBLE);
            barWifi.setIcon(R.mipmap.wifi);
        }else {
            barWifi.setVisibility(GONE);
        }
    }


    /**
     * 设置基站编号
     * @param value
     */
    public void setStatusBarBaseId(int value){
       barBasestation.setText(String.format("基站编号:%s",value+""));
    }

    /**
     * 设置CH
     * @param value
     */
    public void setStatusCH(int value){
        barCh.setText(String.format("CH:%s",value));
    }

    /**
     * 设置终端编号
     * @param value
     */
    public void setStatusKeyId(int value){
        barTerminalId.setText(String.format("终端编号:%s",value));
    }

    /**
     * 设置电量
     * @param battery
     */
    public void setStatusBattery(int battery, String BatteryPercent){
        if(battery > 0 && battery <= 10){
            barBattery.setIcon(R.mipmap.battery);
        }else if(battery > 10 && battery <= 40){
            barBattery.setIcon(R.mipmap.battery_1);
        }else if(battery > 40 && battery <= 60){
            barBattery.setIcon(R.mipmap.battery_2);
        }else if(battery > 60 && battery <= 80){
            barBattery.setIcon(R.mipmap.battery_3);
        }else if(battery > 80 && battery <= 100){
            barBattery.setIcon(R.mipmap.battery_4);
        }else{
            barBattery.setIcon(R.mipmap.battery);
        }
        barBattery.setText(BatteryPercent);
    }

    /**
     * 返回时间控件
     * @param
     */
    public BarItem getTimeCtl(){
        return barSystemtime;
    }
}