Commit 4801fa6f468394effa71989eff511897562a56e9
1 parent
793e2ae4
添加资源文件,类文件
Showing
15 changed files
with
327 additions
and
0 deletions
C5/app/src/main/java/com/sunvote/xpadapp/server/BatteryReceiver.java
0 → 100644
| 1 | +package com.sunvote.xpadapp.server; | |
| 2 | + | |
| 3 | +import android.content.BroadcastReceiver; | |
| 4 | +import android.content.Context; | |
| 5 | +import android.content.Intent; | |
| 6 | +import android.util.Log; | |
| 7 | + | |
| 8 | +public class BatteryReceiver extends BroadcastReceiver { | |
| 9 | + int mCurrentLevel = 0; | |
| 10 | + int m_total = 0; | |
| 11 | + String m_strPercent; | |
| 12 | + | |
| 13 | + @Override | |
| 14 | + public void onReceive(Context context, Intent intent) { | |
| 15 | + final String action = intent.getAction(); | |
| 16 | + if (action.equalsIgnoreCase(Intent.ACTION_BATTERY_CHANGED)) { | |
| 17 | + Log.i("james-fan", "get battery change broad"); | |
| 18 | + } | |
| 19 | + // mCurrentLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); | |
| 20 | + //m_total = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1); | |
| 21 | + mCurrentLevel = intent.getExtras().getInt("level");// 获得当前电量 | |
| 22 | + m_total = intent.getExtras().getInt("scale");// 获得总电量 | |
| 23 | + int percent = mCurrentLevel * 100 / m_total; | |
| 24 | + m_strPercent = percent + "%"; | |
| 25 | + iReceiveData.onReceiveData(); | |
| 26 | + } | |
| 27 | + | |
| 28 | + public int getCurrentLevel() { | |
| 29 | + return mCurrentLevel; | |
| 30 | + } | |
| 31 | + | |
| 32 | + public int getTotal() { | |
| 33 | + return m_total; | |
| 34 | + } | |
| 35 | + | |
| 36 | + public String getBatteryPercent() { | |
| 37 | + return m_strPercent; | |
| 38 | + } | |
| 39 | + | |
| 40 | + private IReceiveData iReceiveData; | |
| 41 | + public void setOnReceiveResultData(IReceiveData receiveData){ | |
| 42 | + iReceiveData = receiveData; | |
| 43 | + } | |
| 44 | + | |
| 45 | + public interface IReceiveData{ | |
| 46 | + void onReceiveData(); | |
| 47 | + } | |
| 48 | +} | |
| 0 | 49 | \ No newline at end of file | ... | ... |
C5/app/src/main/java/com/sunvote/xpadapp/widget/StatusBarView.java
0 → 100644
| 1 | +package com.sunvote.xpadapp.widget; | |
| 2 | + | |
| 3 | +import android.annotation.SuppressLint; | |
| 4 | +import android.content.Context; | |
| 5 | +import android.content.Intent; | |
| 6 | +import android.content.IntentFilter; | |
| 7 | +import android.util.AttributeSet; | |
| 8 | +import android.view.LayoutInflater; | |
| 9 | +import android.view.View; | |
| 10 | +import android.view.ViewGroup; | |
| 11 | +import android.widget.LinearLayout; | |
| 12 | + | |
| 13 | +import com.sunvote.statusbar.view.BarItem; | |
| 14 | +import com.sunvote.xpadapp.R; | |
| 15 | + | |
| 16 | +public class StatusBarView extends LinearLayout { | |
| 17 | + Context mContext; | |
| 18 | + //信号图标,基站编号,CH,终端ID,电池电量图标,系统时间 | |
| 19 | + BarItem barSignal,barBasestation,barCh,barTerminalId,barBattery,barSystemtime; | |
| 20 | + | |
| 21 | + public StatusBarView(Context context) { | |
| 22 | + this(context, null); | |
| 23 | + } | |
| 24 | + | |
| 25 | + public StatusBarView(Context context, AttributeSet attrs) { | |
| 26 | + this(context, attrs, 0); | |
| 27 | + } | |
| 28 | + | |
| 29 | + View view; | |
| 30 | + @SuppressLint("NewApi") | |
| 31 | + public StatusBarView(Context context, AttributeSet attrs, int defStyle) { | |
| 32 | + super(context, attrs, defStyle); | |
| 33 | + init(context, attrs, defStyle); | |
| 34 | + } | |
| 35 | + | |
| 36 | + private void init(Context ctx, AttributeSet attrs, int defStyle){ | |
| 37 | + mContext=ctx; | |
| 38 | + LayoutInflater ll = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); | |
| 39 | + ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT); | |
| 40 | + view = ll.inflate(R.layout.status_icon_view, null); | |
| 41 | + view.setLayoutParams(lp); | |
| 42 | + | |
| 43 | + barSignal = (BarItem)view.findViewById(R.id.bar_signal); | |
| 44 | + barBasestation = (BarItem) view.findViewById(R.id.bar_basestation); | |
| 45 | + barCh = (BarItem) view.findViewById(R.id.bar_ch); | |
| 46 | + barTerminalId = (BarItem) view.findViewById(R.id.bar_terminalId); | |
| 47 | + barBattery = (BarItem) view.findViewById(R.id.bar_battery); | |
| 48 | + barSystemtime = (BarItem) view.findViewById(R.id.bar_systemtime); | |
| 49 | + addView(view); | |
| 50 | + } | |
| 51 | + | |
| 52 | + public void setBackgroundColor(int color){ | |
| 53 | + view.setBackgroundColor(color); | |
| 54 | + } | |
| 55 | + /** | |
| 56 | + * 设置信号图标 | |
| 57 | + * @param rssi | |
| 58 | + */ | |
| 59 | + public void setStatusSignal(int rssi){ | |
| 60 | + barSignal.setIcon(R.mipmap.signal); | |
| 61 | + if (rssi < 95){ | |
| 62 | + barSignal.setIcon(R.mipmap.signal_1); | |
| 63 | + } | |
| 64 | + if (rssi < 85){ | |
| 65 | + barSignal.setIcon(R.mipmap.signal_2); | |
| 66 | + } | |
| 67 | + if (rssi < 75) { | |
| 68 | + barSignal.setIcon(R.mipmap.signal_3); | |
| 69 | + } | |
| 70 | + if (rssi < 65) { | |
| 71 | + barSignal.setIcon(R.mipmap.signal_4); | |
| 72 | + } | |
| 73 | + if (rssi < 55) { | |
| 74 | + barSignal.setIcon(R.mipmap.signal_5); | |
| 75 | + } | |
| 76 | + } | |
| 77 | + | |
| 78 | + /** | |
| 79 | + * 设置基站编号 | |
| 80 | + * @param value | |
| 81 | + */ | |
| 82 | + public void setStatusBarBaseId(int value){ | |
| 83 | + barBasestation.setText(String.format("基站编号:%s",value+"")); | |
| 84 | + } | |
| 85 | + | |
| 86 | + /** | |
| 87 | + * 设置CH | |
| 88 | + * @param value | |
| 89 | + */ | |
| 90 | + public void setStatusCH(int value){ | |
| 91 | + barCh.setText(String.format("CH:%s",value)); | |
| 92 | + } | |
| 93 | + | |
| 94 | + /** | |
| 95 | + * 设置终端编号 | |
| 96 | + * @param value | |
| 97 | + */ | |
| 98 | + public void setStatusKeyId(int value){ | |
| 99 | + barTerminalId.setText(String.format("终端编号:%s",value)); | |
| 100 | + } | |
| 101 | + | |
| 102 | + /** | |
| 103 | + * 设置电量 | |
| 104 | + * @param battery | |
| 105 | + */ | |
| 106 | + public void setStatusBattery(int battery, String BatteryPercent){ | |
| 107 | + if(battery > 0 && battery <= 10){ | |
| 108 | + barBattery.setIcon(R.mipmap.battery); | |
| 109 | + }else if(battery > 10 && battery <= 40){ | |
| 110 | + barBattery.setIcon(R.mipmap.battery_1); | |
| 111 | + }else if(battery > 40 && battery <= 60){ | |
| 112 | + barBattery.setIcon(R.mipmap.battery_2); | |
| 113 | + }else if(battery > 60 && battery <= 80){ | |
| 114 | + barBattery.setIcon(R.mipmap.battery_3); | |
| 115 | + }else if(battery > 80 && battery <= 100){ | |
| 116 | + barBattery.setIcon(R.mipmap.battery_4); | |
| 117 | + }else{ | |
| 118 | + barBattery.setIcon(R.mipmap.battery); | |
| 119 | + } | |
| 120 | + barBattery.setText(BatteryPercent); | |
| 121 | + } | |
| 122 | + | |
| 123 | + /** | |
| 124 | + * 返回时间控件 | |
| 125 | + * @param | |
| 126 | + */ | |
| 127 | + public BarItem getTimeCtl(){ | |
| 128 | + return barSystemtime; | |
| 129 | + } | |
| 130 | +} | ... | ... |
C5/app/src/main/java/com/sunvote/xpadapp/widget/TimeThread.java
0 → 100644
| 1 | +package com.sunvote.xpadapp.widget; | |
| 2 | +import android.os.Handler; | |
| 3 | +import android.os.Message; | |
| 4 | +import android.widget.TextView; | |
| 5 | + | |
| 6 | +import com.sunvote.statusbar.view.BarItem; | |
| 7 | + | |
| 8 | +import java.text.SimpleDateFormat; | |
| 9 | +import java.util.Calendar; | |
| 10 | +import java.util.Date; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * Copyright: Copyright (c) 2018-2025 | |
| 14 | + * Class: 实时更新时间的线程 | |
| 15 | + * | |
| 16 | + * @author: | |
| 17 | + * @date: 2018/11/21 | |
| 18 | + * describe: | |
| 19 | + */ | |
| 20 | +public class TimeThread extends Thread { | |
| 21 | + public BarItem tvDate; | |
| 22 | + private int msgKey1 = 22; | |
| 23 | + | |
| 24 | + public TimeThread(BarItem tvDate) { | |
| 25 | + this.tvDate = tvDate; | |
| 26 | + } | |
| 27 | + | |
| 28 | + @Override | |
| 29 | + public void run() { | |
| 30 | + do { | |
| 31 | + try { | |
| 32 | + Thread.sleep(1000); | |
| 33 | + Message msg = new Message(); | |
| 34 | + msg.what = msgKey1; | |
| 35 | + mHandler.sendMessage(msg); | |
| 36 | + } catch (InterruptedException e) { | |
| 37 | + e.printStackTrace(); | |
| 38 | + } | |
| 39 | + } while (true); | |
| 40 | + } | |
| 41 | + | |
| 42 | + private Handler mHandler = new Handler() { | |
| 43 | + @Override | |
| 44 | + public void handleMessage(Message msg) { | |
| 45 | + super.handleMessage(msg); | |
| 46 | + switch (msg.what) { | |
| 47 | + case 22: | |
| 48 | + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); | |
| 49 | + String date = sdf.format(new Date()); | |
| 50 | + tvDate.setText(date + getWeek()); | |
| 51 | + break; | |
| 52 | + | |
| 53 | + default: | |
| 54 | + break; | |
| 55 | + } | |
| 56 | + } | |
| 57 | + }; | |
| 58 | + | |
| 59 | + /** | |
| 60 | + * 获取今天星期几 | |
| 61 | + * @return | |
| 62 | + */ | |
| 63 | + public static String getWeek() { | |
| 64 | + Calendar cal = Calendar.getInstance(); | |
| 65 | + int i = cal.get(Calendar.DAY_OF_WEEK); | |
| 66 | + switch (i) { | |
| 67 | + case 1: | |
| 68 | + return "周日"; | |
| 69 | + case 2: | |
| 70 | + return "周一"; | |
| 71 | + case 3: | |
| 72 | + return "周二"; | |
| 73 | + case 4: | |
| 74 | + return "周三"; | |
| 75 | + case 5: | |
| 76 | + return "周四"; | |
| 77 | + case 6: | |
| 78 | + return "周五"; | |
| 79 | + case 7: | |
| 80 | + return "周六"; | |
| 81 | + default: | |
| 82 | + return ""; | |
| 83 | + } | |
| 84 | + } | |
| 85 | +} | ... | ... |
C5/app/src/main/res/layout/status_icon_view.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | |
| 2 | +<com.sunvote.statusbar.view.StatusBar | |
| 3 | + xmlns:android="http://schemas.android.com/apk/res/android" | |
| 4 | + xmlns:tools="http://schemas.android.com/tools" | |
| 5 | + android:layout_width="match_parent" | |
| 6 | + android:layout_height="@dimen/status_bar_height" | |
| 7 | + android:orientation="horizontal" | |
| 8 | + android:padding="2dp" | |
| 9 | + android:dividerPadding="2dp" | |
| 10 | + android:showDividers="middle" | |
| 11 | + android:divider="@drawable/status_bar_divider" | |
| 12 | + android:gravity="left|center_vertical" | |
| 13 | + tools:ignore="MissingDefaultResource"> | |
| 14 | + <com.sunvote.statusbar.view.BarItem | |
| 15 | + android:id="@+id/bar_signal" | |
| 16 | + android:layout_width="wrap_content" | |
| 17 | + android:layout_height="match_parent" | |
| 18 | + android:gravity="left|center_vertical" | |
| 19 | + android:layout_weight="1" | |
| 20 | + android:text="" | |
| 21 | + android:textColor="@android:color/white"/> | |
| 22 | + <com.sunvote.statusbar.view.BarItem | |
| 23 | + android:id="@+id/bar_basestation" | |
| 24 | + android:layout_width="wrap_content" | |
| 25 | + android:layout_height="match_parent" | |
| 26 | + android:gravity="left" | |
| 27 | + android:visibility="invisible" | |
| 28 | + android:text="" | |
| 29 | + android:layout_weight="0.1" | |
| 30 | + android:textColor="@android:color/white"/> | |
| 31 | + <com.sunvote.statusbar.view.BarItem | |
| 32 | + android:id="@+id/bar_ch" | |
| 33 | + android:layout_width="wrap_content" | |
| 34 | + android:layout_height="match_parent" | |
| 35 | + android:gravity="right" | |
| 36 | + android:text="" | |
| 37 | + android:visibility="invisible" | |
| 38 | + android:layout_weight="1" | |
| 39 | + android:textColor="@android:color/white"/> | |
| 40 | + <com.sunvote.statusbar.view.BarItem | |
| 41 | + android:id="@+id/bar_terminalId" | |
| 42 | + android:layout_width="wrap_content" | |
| 43 | + android:layout_height="match_parent" | |
| 44 | + android:gravity="center" | |
| 45 | + android:text="" | |
| 46 | + android:layout_weight="8" | |
| 47 | + android:textColor="@android:color/white"/> | |
| 48 | + <com.sunvote.statusbar.view.BarItem | |
| 49 | + android:id="@+id/bar_systemtime" | |
| 50 | + android:layout_width="wrap_content" | |
| 51 | + android:layout_height="match_parent" | |
| 52 | + android:gravity="right|center" | |
| 53 | + android:text="" | |
| 54 | + android:layout_weight="2" | |
| 55 | + android:textColor="@android:color/white"/> | |
| 56 | + <com.sunvote.statusbar.view.BarItem | |
| 57 | + android:id="@+id/bar_battery" | |
| 58 | + android:layout_width="wrap_content" | |
| 59 | + android:layout_height="match_parent" | |
| 60 | + android:gravity="right|center" | |
| 61 | + android:text="" | |
| 62 | + android:layout_weight="0.1" | |
| 63 | + android:textColor="@android:color/white"/> | |
| 64 | +</com.sunvote.statusbar.view.StatusBar> | ... | ... |
C5/app/src/main/res/mipmap-hdpi/battery.png
0 → 100644
15.4 KB
C5/app/src/main/res/mipmap-hdpi/battery_1.png
0 → 100644
15.5 KB
C5/app/src/main/res/mipmap-hdpi/battery_2.png
0 → 100644
15.5 KB
C5/app/src/main/res/mipmap-hdpi/battery_3.png
0 → 100644
15.5 KB
C5/app/src/main/res/mipmap-hdpi/battery_4.png
0 → 100644
15.4 KB
C5/app/src/main/res/mipmap-hdpi/signal.png
0 → 100644
16 KB
C5/app/src/main/res/mipmap-hdpi/signal_1.png
0 → 100644
16.1 KB
C5/app/src/main/res/mipmap-hdpi/signal_2.png
0 → 100644
16.2 KB
C5/app/src/main/res/mipmap-hdpi/signal_3.png
0 → 100644
16.2 KB
C5/app/src/main/res/mipmap-hdpi/signal_4.png
0 → 100644
16.2 KB
C5/app/src/main/res/mipmap-hdpi/signal_5.png
0 → 100644
15.7 KB