From c84096324e7562f49ffe48b3a4b149f29b2b3d52 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期二, 24 十二月 2024 16:05:50 +0800 Subject: [PATCH] 2024年12月24日16:05:48 --- app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java | 92 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 87 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java index 89cc4b0..1edf0e8 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java @@ -4,11 +4,16 @@ import android.content.Context; import android.graphics.Bitmap; import android.os.SystemClock; +import android.text.SpannableStringBuilder; +import android.text.TextPaint; import android.text.TextUtils; +import android.text.style.ClickableSpan; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.ImageView; import android.widget.TextView; + +import androidx.annotation.NonNull; import com.google.gson.JsonObject; import com.google.zxing.BarcodeFormat; @@ -16,6 +21,8 @@ import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; import com.hdl.linkpm.sdk.user.HDLLinkPMUser; +import com.hdl.photovoltaic.HDLApp; +import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.config.ConstantManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; @@ -23,6 +30,7 @@ import com.hdl.photovoltaic.enums.UnitType; import com.hdl.photovoltaic.utils.GlideUtils; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; +import com.hdl.sdk.link.core.callback.BaseCallBack; import org.greenrobot.eventbus.EventBus; import org.json.JSONObject; @@ -93,12 +101,13 @@ if (TextUtils.isEmpty(value)) { return UnitType.noValue + unit; } - if (unit.equals(UnitType.kW)) { + if (unit.equals(UnitType.kW) || unit.equals(UnitType.kWh)) { return divideByOneThousandAndFormat(value).toString() + unit; } return getBigDecimal(value).toString() + unit; } + /** * @param value 鍊� @@ -152,11 +161,41 @@ * @return BigDecimal */ public static BigDecimal divideByOneThousandAndFormat(String value) { - double doubleValue = Double.parseDouble(value); - BigDecimal bigDecimal = new BigDecimal(doubleValue); - return bigDecimal.divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN); + try { + double doubleValue = Double.parseDouble(value); + int val = 1000; + if (doubleValue > 1000 && doubleValue < 1000 * 1000) { + val = 1000; + } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + val = 1000 * 1000; + } else if (doubleValue > 1000 * 1000 * 1000) { + val = 1000 * 1000 * 1000; + } + BigDecimal bigDecimal = new BigDecimal(doubleValue); + return bigDecimal.divide(new BigDecimal(val), 2, RoundingMode.HALF_EVEN); + } catch (Exception e) { + BigDecimal bigDecimal = new BigDecimal(0); + return bigDecimal.divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN); + } } + /** + * 鑾峰彇鍊嶆暟 + * + * @param value 鍊� + */ + public static int val(String value) { + double doubleValue = Double.parseDouble(value); + int val = 1000; + if (doubleValue > 1000 && doubleValue < 1000 * 1000) { + val = 1000; + } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { + val = 1000 * 1000; + } else if (doubleValue > 1000 * 1000 * 1000) { + val = 1000 * 1000 * 1000; + } + return val; + } /** * 鐢熸垚浜岀淮鐮� @@ -221,7 +260,6 @@ } - /** * 娌℃湁鏁版嵁鐣岄潰鐨勬牱寮� * @@ -238,6 +276,46 @@ GlideUtils.getDrawableGifAnimation(mContext, imageView); textView.setText(str); + } + } + + + /** + * 璁剧疆瀛椾綋鐨勫瘜鏂囨湰宸茬粡涓嬪垝绾� + * + * @param view 褰撳墠缁勪欢 + * @param str 鍐呭瀛楃涓� + * @param isUnderline 鏄惁鏄剧ず涓嬪垝绾匡紙true=鏄剧ず锛� + * @param spanCallBack 鐐瑰嚮鏂囨湰鍚庡洖璋冧簨浠�,涓嶉渶瑕佸洖璋冧簨浠跺~null + */ + public void setSpan(TextView view, String str, boolean isUnderline, SpanCallBack spanCallBack) { + + if (view == null || TextUtils.isEmpty(str)) { + return; + } + try { + SpannableStringBuilder registerTvStrSpannable = new SpannableStringBuilder(str); + registerTvStrSpannable.setSpan(new ClickableSpan() { + @Override + public void onClick(@NonNull View widget) { + if (spanCallBack != null) { + spanCallBack.onClick(); + } + } + + @Override + public void updateDrawState(@NonNull TextPaint ds) { + super.updateDrawState(ds); + //璁剧疆瀛椾綋棰滆壊 + ds.setColor(HDLApp.getInstance().getResources().getColor(R.color.text_E6FFFFFF, null)); + // 鍘绘帀涓嬪垝绾� + ds.setUnderlineText(isUnderline); + } + + + }, 0, str.length(), 0); + view.setText(registerTvStrSpannable); + } catch (Exception ignored) { } } @@ -300,4 +378,8 @@ EventBus.getDefault().post(baseEventBus); } + public interface SpanCallBack { + void onClick(); + } + } -- Gitblit v1.8.0