Compare commits
5 Commits
powerbell-
...
powerbell-
| Author | SHA1 | Date | |
|---|---|---|---|
| 9124303fd3 | |||
| 414541093a | |||
| 13265be66e | |||
| ebd32adb68 | |||
| 56a65cd10a |
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Sun Dec 28 13:16:31 HKT 2025
|
#Sun Dec 28 20:43:38 HKT 2025
|
||||||
stageCount=39
|
stageCount=41
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=15.14
|
baseVersion=15.14
|
||||||
publishVersion=15.14.38
|
publishVersion=15.14.40
|
||||||
buildCount=0
|
buildCount=0
|
||||||
baseBetaVersion=15.14.39
|
baseBetaVersion=15.14.41
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ package cc.winboll.studio.powerbell.models;
|
|||||||
*/
|
*/
|
||||||
public enum BatteryStyle {
|
public enum BatteryStyle {
|
||||||
ENERGY_STYLE, // 能量样式
|
ENERGY_STYLE, // 能量样式
|
||||||
ZEBRA_STYLE // 条纹样式
|
ZEBRA_STYLE, // 条纹样式
|
||||||
|
POINT_STYLE // 点阵样式
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -106,6 +106,8 @@ public class BatteryDrawable extends Drawable {
|
|||||||
drawEnergyStyle(canvas, validBattery, left, right, drawHeight);
|
drawEnergyStyle(canvas, validBattery, left, right, drawHeight);
|
||||||
} else if (mBatteryStyle == BatteryStyle.ZEBRA_STYLE) {
|
} else if (mBatteryStyle == BatteryStyle.ZEBRA_STYLE) {
|
||||||
drawZebraStyle(canvas, validBattery, left, right, drawHeight);
|
drawZebraStyle(canvas, validBattery, left, right, drawHeight);
|
||||||
|
} else if (mBatteryStyle == BatteryStyle.POINT_STYLE) {
|
||||||
|
drawPointStyle(canvas, validBattery, left, right, drawHeight);
|
||||||
}
|
}
|
||||||
LogUtils.d(TAG, "【draw】绘制完成");
|
LogUtils.d(TAG, "【draw】绘制完成");
|
||||||
}
|
}
|
||||||
@@ -121,9 +123,25 @@ public class BatteryDrawable extends Drawable {
|
|||||||
*/
|
*/
|
||||||
private void drawEnergyStyle(Canvas canvas, int battery, int left, int right, int height) {
|
private void drawEnergyStyle(Canvas canvas, int battery, int left, int right, int height) {
|
||||||
LogUtils.d(TAG, "【drawEnergyStyle】能量风格绘制开始 | 电量=" + battery);
|
LogUtils.d(TAG, "【drawEnergyStyle】能量风格绘制开始 | 电量=" + battery);
|
||||||
int top = height - (height * battery / BATTERY_MAX); // 计算电量对应顶部坐标
|
// int top = height - (height * battery / BATTERY_MAX); // 计算电量对应顶部坐标
|
||||||
canvas.drawRect(new Rect(left, top, right, height), mBatteryPaint);
|
// canvas.drawRect(new Rect(left, top, right, height), mBatteryPaint);
|
||||||
LogUtils.d(TAG, "【drawEnergyStyle】能量风格绘制完成 | 顶部坐标=" + top);
|
// LogUtils.d(TAG, "【drawEnergyStyle】能量风格绘制完成 | 顶部坐标=" + top);
|
||||||
|
int nWidth = getBounds().width();
|
||||||
|
int nHeight = getBounds().height();
|
||||||
|
int mnDx = nHeight / 203;
|
||||||
|
|
||||||
|
// 绘制耗电电量提醒值电量
|
||||||
|
// 能量绘图风格
|
||||||
|
int nTop;
|
||||||
|
int nLeft = 0;
|
||||||
|
int nBottom;
|
||||||
|
int nRight = nWidth;
|
||||||
|
|
||||||
|
//for (int i = 0; i < mnValue; i ++) {
|
||||||
|
nBottom = nHeight;
|
||||||
|
nTop = nHeight - (nHeight * mBatteryValue / 100);
|
||||||
|
canvas.drawRect(new Rect(nLeft, nTop, nRight, nBottom), mBatteryPaint);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -163,6 +181,49 @@ public class BatteryDrawable extends Drawable {
|
|||||||
LogUtils.d(TAG, "【drawStripeStyle】条纹风格绘制完成 | 条纹数量=" + battery);
|
LogUtils.d(TAG, "【drawStripeStyle】条纹风格绘制完成 | 条纹数量=" + battery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 点阵风格绘制
|
||||||
|
* @param canvas 绘制画布
|
||||||
|
* @param battery 有效电量(0-100)
|
||||||
|
* @param left 左边界
|
||||||
|
* @param right 右边界
|
||||||
|
* @param height 绘制高度
|
||||||
|
*/
|
||||||
|
private void drawPointStyle(Canvas canvas, int battery, int left, int right, int height) {
|
||||||
|
LogUtils.d(TAG, "【drawStripeStyle】条纹风格绘制开始 | 电量=" + battery);
|
||||||
|
|
||||||
|
int nWidth = getBounds().width();
|
||||||
|
int nHeight = getBounds().height();
|
||||||
|
int mnDx = nHeight / 203;
|
||||||
|
|
||||||
|
|
||||||
|
// 意兴阑珊绘图风格
|
||||||
|
int nTop;
|
||||||
|
int nLeft = 0;
|
||||||
|
int nBottom;
|
||||||
|
int nRight = nWidth;
|
||||||
|
|
||||||
|
int nLineWidth = nRight - nLeft;
|
||||||
|
int radius_horizontal = (nLineWidth / 10) / 2;
|
||||||
|
int radius_vertical = mnDx/2;
|
||||||
|
int radius = Math.min(radius_horizontal, radius_vertical);
|
||||||
|
|
||||||
|
for (int i = 0; i < mBatteryValue; i ++) {
|
||||||
|
nBottom = (nHeight * (100 - i) / 100) - mnDx;
|
||||||
|
nTop = nBottom + mnDx;
|
||||||
|
//canvas.drawRect(new Rect(nLeft, nTop, nRight, nBottom), mBatteryPaint);
|
||||||
|
|
||||||
|
for (int j = 0; j < 10; j++) {
|
||||||
|
// cx, cy 圆心坐标;radius 半径;paint 画笔
|
||||||
|
int cx = radius_horizontal + radius_horizontal * j * 2;
|
||||||
|
int cy = nTop + radius_vertical;
|
||||||
|
canvas.drawCircle(cx, cy, radius, mBatteryPaint);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LogUtils.d(TAG, "【drawStripeStyle】条纹风格绘制完成 | 条纹数量=" + battery);
|
||||||
|
}
|
||||||
|
|
||||||
// ====================================== 对外暴露方法(业务控制入口,按功能排序) ======================================
|
// ====================================== 对外暴露方法(业务控制入口,按功能排序) ======================================
|
||||||
/**
|
/**
|
||||||
* 设置当前电量(外部核心调用入口)
|
* 设置当前电量(外部核心调用入口)
|
||||||
|
|||||||
@@ -37,10 +37,13 @@ public class BatteryStyleView extends LinearLayout implements RadioGroup.OnCheck
|
|||||||
private RadioGroup rgBatteryStyle;
|
private RadioGroup rgBatteryStyle;
|
||||||
private RadioButton rbZebraStyle;
|
private RadioButton rbZebraStyle;
|
||||||
private RadioButton rbEnergyStyle;
|
private RadioButton rbEnergyStyle;
|
||||||
|
private RadioButton rbPointStyle; // ✅ 新增:圆点样式单选按钮
|
||||||
private RelativeLayout rlZebraPreview;
|
private RelativeLayout rlZebraPreview;
|
||||||
private RelativeLayout rlEnergyPreview;
|
private RelativeLayout rlEnergyPreview;
|
||||||
|
private RelativeLayout rlPointPreview; // ✅ 新增:圆点样式预览布局
|
||||||
private BatteryDrawable mZebraDrawable;
|
private BatteryDrawable mZebraDrawable;
|
||||||
private BatteryDrawable mEnergyDrawable;
|
private BatteryDrawable mEnergyDrawable;
|
||||||
|
private BatteryDrawable mPointDrawable; // ✅ 新增:圆点样式Drawable实例
|
||||||
|
|
||||||
// ====================== 业务变量 ======================
|
// ====================== 业务变量 ======================
|
||||||
private BatteryStyle mCurrentStyle = BatteryStyle.ENERGY_STYLE; // ✅ 修改默认样式为 能量样式
|
private BatteryStyle mCurrentStyle = BatteryStyle.ENERGY_STYLE; // ✅ 修改默认样式为 能量样式
|
||||||
@@ -83,7 +86,7 @@ public class BatteryStyleView extends LinearLayout implements RadioGroup.OnCheck
|
|||||||
mBatteryColor = typedArray.getColor(R.styleable.BatteryStyleView_batteryPreviewColor, DEFAULT_BATTERY_COLOR);
|
mBatteryColor = typedArray.getColor(R.styleable.BatteryStyleView_batteryPreviewColor, DEFAULT_BATTERY_COLOR);
|
||||||
mBatteryValue = typedArray.getInt(R.styleable.BatteryStyleView_previewBatteryValue, 100);
|
mBatteryValue = typedArray.getInt(R.styleable.BatteryStyleView_previewBatteryValue, 100);
|
||||||
int styleIndex = typedArray.getInt(R.styleable.BatteryStyleView_defaultSelectedStyle, DEFAULT_CHECKED_STYLE_INDEX);
|
int styleIndex = typedArray.getInt(R.styleable.BatteryStyleView_defaultSelectedStyle, DEFAULT_CHECKED_STYLE_INDEX);
|
||||||
mCurrentStyle = getStyleFromSP() == null ? (styleIndex == 0 ? BatteryStyle.ENERGY_STYLE : BatteryStyle.ZEBRA_STYLE) : getStyleFromSP();
|
mCurrentStyle = getStyleFromSP() == null ? (styleIndex == 0 ? BatteryStyle.ENERGY_STYLE : styleIndex ==1 ? BatteryStyle.ZEBRA_STYLE : BatteryStyle.POINT_STYLE) : getStyleFromSP();
|
||||||
typedArray.recycle();
|
typedArray.recycle();
|
||||||
LogUtils.d(TAG, "【initAttrs】解析属性完成 电量颜色=" + Integer.toHexString(mBatteryColor) + " 预览电量=" + mBatteryValue + " 默认样式=" + mCurrentStyle.name());
|
LogUtils.d(TAG, "【initAttrs】解析属性完成 电量颜色=" + Integer.toHexString(mBatteryColor) + " 预览电量=" + mBatteryValue + " 默认样式=" + mCurrentStyle.name());
|
||||||
}
|
}
|
||||||
@@ -93,8 +96,10 @@ public class BatteryStyleView extends LinearLayout implements RadioGroup.OnCheck
|
|||||||
rgBatteryStyle = findViewById(R.id.rg_battery_style);
|
rgBatteryStyle = findViewById(R.id.rg_battery_style);
|
||||||
rbZebraStyle = findViewById(R.id.rb_zebra_style);
|
rbZebraStyle = findViewById(R.id.rb_zebra_style);
|
||||||
rbEnergyStyle = findViewById(R.id.rb_energy_style);
|
rbEnergyStyle = findViewById(R.id.rb_energy_style);
|
||||||
|
rbPointStyle = findViewById(R.id.rb_point_style); // ✅ 新增:绑定圆点样式单选按钮
|
||||||
rlZebraPreview = findViewById(R.id.rl_zebra_preview);
|
rlZebraPreview = findViewById(R.id.rl_zebra_preview);
|
||||||
rlEnergyPreview = findViewById(R.id.rl_energy_preview);
|
rlEnergyPreview = findViewById(R.id.rl_energy_preview);
|
||||||
|
rlPointPreview = findViewById(R.id.rl_point_preview); // ✅ 新增:绑定圆点样式预览布局
|
||||||
|
|
||||||
initPreviewDrawable();
|
initPreviewDrawable();
|
||||||
rgBatteryStyle.setOnCheckedChangeListener(this);
|
rgBatteryStyle.setOnCheckedChangeListener(this);
|
||||||
@@ -111,12 +116,21 @@ public class BatteryStyleView extends LinearLayout implements RadioGroup.OnCheck
|
|||||||
mEnergyDrawable = new BatteryDrawable(mBatteryColor, BatteryStyle.ENERGY_STYLE);
|
mEnergyDrawable = new BatteryDrawable(mBatteryColor, BatteryStyle.ENERGY_STYLE);
|
||||||
mEnergyDrawable.setBatteryValue(mBatteryValue);
|
mEnergyDrawable.setBatteryValue(mBatteryValue);
|
||||||
rlEnergyPreview.setBackground(mEnergyDrawable);
|
rlEnergyPreview.setBackground(mEnergyDrawable);
|
||||||
|
|
||||||
|
// ✅ 新增:初始化圆点样式Drawable + 绑定预览布局 + 设置电量值
|
||||||
|
mPointDrawable = new BatteryDrawable(mBatteryColor, BatteryStyle.POINT_STYLE);
|
||||||
|
mPointDrawable.setBatteryValue(mBatteryValue);
|
||||||
|
rlPointPreview.setBackground(mPointDrawable);
|
||||||
|
|
||||||
LogUtils.d(TAG, "【initPreviewDrawable】Drawable预览初始化完成");
|
LogUtils.d(TAG, "【initPreviewDrawable】Drawable预览初始化完成");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setDefaultChecked() {
|
private void setDefaultChecked() {
|
||||||
|
// ✅ 新增:圆点样式的默认选中判断
|
||||||
if (mCurrentStyle == BatteryStyle.ZEBRA_STYLE) {
|
if (mCurrentStyle == BatteryStyle.ZEBRA_STYLE) {
|
||||||
rbZebraStyle.setChecked(true);
|
rbZebraStyle.setChecked(true);
|
||||||
|
} else if (mCurrentStyle == BatteryStyle.POINT_STYLE) {
|
||||||
|
rbPointStyle.setChecked(true);
|
||||||
} else {
|
} else {
|
||||||
rbEnergyStyle.setChecked(true);
|
rbEnergyStyle.setChecked(true);
|
||||||
}
|
}
|
||||||
@@ -129,6 +143,7 @@ public class BatteryStyleView extends LinearLayout implements RadioGroup.OnCheck
|
|||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
rbZebraStyle.setChecked(true);
|
rbZebraStyle.setChecked(true);
|
||||||
rbEnergyStyle.setChecked(false);
|
rbEnergyStyle.setChecked(false);
|
||||||
|
rbPointStyle.setChecked(false); // ✅ 新增:取消圆点样式选中
|
||||||
handleStyleSelect(BatteryStyle.ZEBRA_STYLE);
|
handleStyleSelect(BatteryStyle.ZEBRA_STYLE);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -138,9 +153,21 @@ public class BatteryStyleView extends LinearLayout implements RadioGroup.OnCheck
|
|||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
rbEnergyStyle.setChecked(true);
|
rbEnergyStyle.setChecked(true);
|
||||||
rbZebraStyle.setChecked(false);
|
rbZebraStyle.setChecked(false);
|
||||||
|
rbPointStyle.setChecked(false); // ✅ 新增:取消圆点样式选中
|
||||||
handleStyleSelect(BatteryStyle.ENERGY_STYLE);
|
handleStyleSelect(BatteryStyle.ENERGY_STYLE);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// ✅ 新增:圆点样式单选按钮点击事件
|
||||||
|
rbPointStyle.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
rbPointStyle.setChecked(true);
|
||||||
|
rbZebraStyle.setChecked(false);
|
||||||
|
rbEnergyStyle.setChecked(false);
|
||||||
|
handleStyleSelect(BatteryStyle.POINT_STYLE);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// ====================== RadioGroup 选中回调 (点击必触发) ======================
|
// ====================== RadioGroup 选中回调 (点击必触发) ======================
|
||||||
@@ -151,6 +178,8 @@ public class BatteryStyleView extends LinearLayout implements RadioGroup.OnCheck
|
|||||||
handleStyleSelect(BatteryStyle.ZEBRA_STYLE);
|
handleStyleSelect(BatteryStyle.ZEBRA_STYLE);
|
||||||
} else if (checkedId == R.id.rb_energy_style) {
|
} else if (checkedId == R.id.rb_energy_style) {
|
||||||
handleStyleSelect(BatteryStyle.ENERGY_STYLE);
|
handleStyleSelect(BatteryStyle.ENERGY_STYLE);
|
||||||
|
} else if (checkedId == R.id.rb_point_style) { // ✅ 新增:圆点样式选中回调
|
||||||
|
handleStyleSelect(BatteryStyle.POINT_STYLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,8 +247,10 @@ public class BatteryStyleView extends LinearLayout implements RadioGroup.OnCheck
|
|||||||
// ====================== 对外暴露方法 ======================
|
// ====================== 对外暴露方法 ======================
|
||||||
public void setSelectedStyle(BatteryStyle style) {
|
public void setSelectedStyle(BatteryStyle style) {
|
||||||
mCurrentStyle = style;
|
mCurrentStyle = style;
|
||||||
|
// ✅ 新增:圆点样式的手动选中赋值
|
||||||
rbZebraStyle.setChecked(style == BatteryStyle.ZEBRA_STYLE);
|
rbZebraStyle.setChecked(style == BatteryStyle.ZEBRA_STYLE);
|
||||||
rbEnergyStyle.setChecked(style == BatteryStyle.ENERGY_STYLE);
|
rbEnergyStyle.setChecked(style == BatteryStyle.ENERGY_STYLE);
|
||||||
|
rbPointStyle.setChecked(style == BatteryStyle.POINT_STYLE);
|
||||||
saveStyle2SP(style);
|
saveStyle2SP(style);
|
||||||
LogUtils.d(TAG, "【setSelectedStyle】手动设置选中样式 → " + style.name() + ",已存入SP");
|
LogUtils.d(TAG, "【setSelectedStyle】手动设置选中样式 → " + style.name() + ",已存入SP");
|
||||||
}
|
}
|
||||||
@@ -232,12 +263,14 @@ public class BatteryStyleView extends LinearLayout implements RadioGroup.OnCheck
|
|||||||
this.mBatteryValue = batteryValue;
|
this.mBatteryValue = batteryValue;
|
||||||
mZebraDrawable.setBatteryValue(batteryValue);
|
mZebraDrawable.setBatteryValue(batteryValue);
|
||||||
mEnergyDrawable.setBatteryValue(batteryValue);
|
mEnergyDrawable.setBatteryValue(batteryValue);
|
||||||
|
mPointDrawable.setBatteryValue(batteryValue); // ✅ 新增:圆点样式同步电量值
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPreviewBatteryColor(int color) {
|
public void setPreviewBatteryColor(int color) {
|
||||||
this.mBatteryColor = color;
|
this.mBatteryColor = color;
|
||||||
mZebraDrawable.updateBatteryColor(color);
|
mZebraDrawable.updateBatteryColor(color);
|
||||||
mEnergyDrawable.updateBatteryColor(color);
|
mEnergyDrawable.updateBatteryColor(color);
|
||||||
|
mPointDrawable.updateBatteryColor(color); // ✅ 新增:圆点样式同步颜色值
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOnBatteryStyleSelectedListener(OnBatteryStyleSelectedListener listener) {
|
public void setOnBatteryStyleSelectedListener(OnBatteryStyleSelectedListener listener) {
|
||||||
|
|||||||
@@ -9,6 +9,33 @@
|
|||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
android:spacing="16dp">
|
android:spacing="16dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:padding="4dp">
|
||||||
|
|
||||||
|
<RadioButton
|
||||||
|
android:id="@+id/rb_energy_style"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/energy_style"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:buttonTint="@color/colorPrimary"
|
||||||
|
android:textColor="@color/colorPrimary"/>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/rl_energy_preview"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:background="#F5F5F5"
|
||||||
|
android:padding="1dp"
|
||||||
|
android:layout_weight="1.0"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
@@ -45,16 +72,16 @@
|
|||||||
android:padding="4dp">
|
android:padding="4dp">
|
||||||
|
|
||||||
<RadioButton
|
<RadioButton
|
||||||
android:id="@+id/rb_energy_style"
|
android:id="@+id/rb_point_style"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/energy_style"
|
android:text="@string/point_style"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:buttonTint="@color/colorPrimary"
|
android:buttonTint="@color/colorPrimary"
|
||||||
android:textColor="@color/colorPrimary"/>
|
android:textColor="@color/colorPrimary"/>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/rl_energy_preview"
|
android:id="@+id/rl_point_preview"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:background="#F5F5F5"
|
android:background="#F5F5F5"
|
||||||
@@ -62,6 +89,6 @@
|
|||||||
android:layout_weight="1.0"/>
|
android:layout_weight="1.0"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,4 @@
|
|||||||
<enum name="energy_style" value="1"/>
|
<enum name="energy_style" value="1"/>
|
||||||
</attr>
|
</attr>
|
||||||
</declare-styleable>
|
</declare-styleable>
|
||||||
|
|
||||||
<!-- 字符串资源,可放到strings.xml -->
|
|
||||||
<string name="zebra_style">Zebra Style</string>
|
|
||||||
<string name="energy_style">Energy Style</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -32,6 +32,9 @@
|
|||||||
<string name="subtitle_activity_about">About The APP</string>
|
<string name="subtitle_activity_about">About The APP</string>
|
||||||
<string name="msg_AOHPCTCSeekBar_ClearRecord">>>>Seek 100% Right Is Clean Record.>>></string>
|
<string name="msg_AOHPCTCSeekBar_ClearRecord">>>>Seek 100% Right Is Clean Record.>>></string>
|
||||||
<string name="msg_no_battery_record">No Battery Record</string>
|
<string name="msg_no_battery_record">No Battery Record</string>
|
||||||
|
<string name="zebra_style">Zebra Style</string>
|
||||||
|
<string name="energy_style">Energy Style</string>
|
||||||
|
<string name="point_style">Point Style</string>
|
||||||
|
|
||||||
<!-- 权限申请相关字符串(统一管理,避免硬编码) -->
|
<!-- 权限申请相关字符串(统一管理,避免硬编码) -->
|
||||||
<string name="permission_title">权限申请</string>
|
<string name="permission_title">权限申请</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user