Android 工具類收集


String相關(guān)

手機(jī)號(hào)加密顯示

public static String passPhone(String phone) {
  if(null!=phone&&phone.length() ==11){       
     return phone.substring(0, 3) + "****" + phone.substring(7);    
  }else{
    return phone;
  }
}

屏幕相關(guān)

    /**
     * 獲取屏幕的寬度
     * */
    public static int getScreenWidth(Context context) {
        WindowManager wm = (WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE);
        return  wm.getDefaultDisplay().getWidth();

    }

    /**
     * 屏幕的高度
     * */
    public static int getScreenHeight(Context context) {
        WindowManager wm = (WindowManager) context
                .getSystemService(Context.WINDOW_SERVICE);
        return  wm.getDefaultDisplay().getHeight();

    }


    /**
     * 將px值轉(zhuǎn)換為dip或dp值,保證尺寸大小不變
     *
     * @param pxValue
     *            ( scale DisplayMetrics類中屬性density)
     * @return
     */
    public static int px2dip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * 將dip或dp值轉(zhuǎn)換為px值,保證尺寸大小不變
     *
     * @param dipValue
     *
     *            (DisplayMetrics類中屬性density)
     * @return
     */
    public static int dip2px(Context context, float dipValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dipValue * scale + 0.5f);
    }

    /**
     * 將px值轉(zhuǎn)換為sp值,保證文字大小不變
     *
     * @param pxValue
     *            (DisplayMetrics類中屬性scaledDensity)
     * @return
     */
    public static int px2sp(Context context, float pxValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (pxValue / fontScale + 0.5f);
    }

    /**
     * 將sp值轉(zhuǎn)換為px值,保證文字大小不變
     *
     * @param spValue
     *            (DisplayMetrics類中屬性scaledDensity)
     * @return
     */
    public static int sp2px(Context context, float spValue) {
        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (spValue * fontScale + 0.5f);
    }



    /**
     * 獲取屏幕中控件頂部位置的高度--即控件頂部的Y點(diǎn)
     *
     * @return
     */
    public static int getScreenViewTopHeight(View view) {
        return view.getTop();
    }

    /**
     * 獲取屏幕中控件底部位置的高度--即控件底部的Y點(diǎn)
     *
     * @return
     */
    public static int getScreenViewBottomHeight(View view) {
        return view.getBottom();
    }

    /**
     * 獲取屏幕中控件左側(cè)的位置--即控件左側(cè)的X點(diǎn)
     *
     * @return
     */
    public static int getScreenViewLeftHeight(View view) {
        return view.getLeft();
    }

    /**
     * 獲取屏幕中控件右側(cè)的位置--即控件右側(cè)的X點(diǎn)
     *
     * @return
     */
    public static int getScreenViewRightHeight(View view) {
        return view.getRight();
    }

網(wǎng)絡(luò)相關(guān)

    /**
     * 判斷網(wǎng)絡(luò)是否可用的方法
     * @param context
     * @return
     */
    public static boolean isOpenNetwork(Context context) {
        ConnectivityManager connectivity = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
                for (int i = 0; i < info.length; i++)
                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                        return true;
                    }
        }
        return false;
    }

    /**
     * 判斷WIFI網(wǎng)絡(luò)是否可用的方法
     * @param context
     * @return
     */
    public static boolean isOpenWifi(Context context) {
        ConnectivityManager connManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mWifi = connManager
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        return mWifi.isConnected();
    }

控件相關(guān)

    /**
     * 設(shè)置控件Text
     * @param v
     * @param text
     */
    public static void setText(View v, String text) {
        if(v==null)
            return ;
        if (TextUtils.isEmpty(text))
            text = "";
        if (v instanceof TextView) {// TextView
            ((TextView) v).setText(text);
            return;
        }
        if (v instanceof Button) {// Button
            ((Button) v).setText(text);
            return;
        }
        if (v instanceof CheckBox) {// CheckBox
            ((CheckBox) v).setText(text);
            return;
        }
        if (v instanceof RadioButton) {// RadioButton
            ((RadioButton) v).setText(text);
            return;
        }
        if (v instanceof EditText) {// EditText
            ((EditText) v).setText(text);
            return;
        }
    }

    /**
     * 獲取控件上的Text
     * @param v
     * @return
     */
    public static String getText(View v) {
        if(null==v)  return "";
        if (v instanceof TextView) {// TextView
            return  ((TextView) v).getText().toString();
        }
        if (v instanceof Button) {// Button
            return  ((Button) v).getText().toString();
        }
        if (v instanceof CheckBox) {// CheckBox
            return  ((CheckBox) v).getText().toString();
        }
        if (v instanceof RadioButton) {// RadioButton
            return  ((RadioButton) v).getText().toString();
        }
        if (v instanceof EditText) {// EditText
            return  ((EditText) v).getText().toString();
        }
        return "";
    }
    /**
     * 下劃線
     * @param v
     */
    public static void setUnderline(View v) {
        if (v instanceof TextView) {// TextView
            ((TextView) v).getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
            ((TextView) v).getPaint().setAntiAlias(true);
            return;
        }
        if (v instanceof Button) {// Button
            ((Button) v).getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
            ((Button) v).getPaint().setAntiAlias(true);
            return;
        }
        if (v instanceof CheckBox) {// CheckBox
            ((CheckBox) v).getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
            ((CheckBox) v).getPaint().setAntiAlias(true);
            return;
        }
        if (v instanceof RadioButton) {// RadioButton
            ((RadioButton) v).getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
            ((RadioButton) v).getPaint().setAntiAlias(true);
            return;
        }
        if (v instanceof EditText) {// EditText
            ((EditText) v).getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
            ((EditText) v).getPaint().setAntiAlias(true);
            return;
        }

    }

    /**
     * 刪除線
     * @param v
     */
    public static void setDeleteline(View v) {
        if (v instanceof TextView) {// TextView
            ((TextView) v).getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
            ((TextView) v).getPaint().setAntiAlias(true);
            return;
        }
        if (v instanceof Button) {// Button
            ((Button) v).getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
            ((Button) v).getPaint().setAntiAlias(true);
            return;
        }
        if (v instanceof CheckBox) {// CheckBox
            ((CheckBox) v).getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
            ((CheckBox) v).getPaint().setAntiAlias(true);
            return;
        }
        if (v instanceof RadioButton) {// RadioButton
            ((RadioButton) v).getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
            ((RadioButton) v).getPaint().setAntiAlias(true);
            return;
        }
        if (v instanceof EditText) {// EditText
            ((EditText) v).getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
            ((EditText) v).getPaint().setAntiAlias(true);
            return;
        }
    }

Edittext保留小數(shù)位

/**
     * @param editText
     * @param retain   需要保留的小數(shù)位
     */
    public static void setInputDecimals(EditText editText, final int retain) {
        editText.addTextChangedListener(new TextWatcher() {
            public String a = "";
            public boolean isCopy = false;

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                if (1 == count) {
                    if (0 == start) {
                        a = s.toString();
                        if (".".equals(a)) {
                            s = "0.";
                            a = "0";
                            isCopy = true;
                            editText.setText(s);
                            editText.setSelection(s.length());
                        }
                    } else if (1 == start) {
                        char c = s.charAt(1);
                        if ("0".equals(a) && '.' != (c)) {
                            s = a + "." + c;
                            isCopy = true;
                            editText.setText(s);
                            editText.setSelection(s.length());
                        }
                    }
                    if (s.toString().contains(".")) {
                        if (s.length() - s.toString().indexOf(".") > retain + 1) {
                            s = s.toString().subSequence(0, s.toString().indexOf(".") + retain + 1);
                            isCopy = true;
                            editText.setText(s);
                            editText.setSelection(s.length());
                        }
                    }
                } else if (count > 1) {
                    if (isCopy) {
                        isCopy = false;
                    } else {
                        editText.setText("");
                    }
                }
            }

            @Override
            public void afterTextChanged(Editable s) {
            }
        });
    }

顯示輸入字?jǐn)?shù)

/**
     * 
     * @param edt
     * @param inputCount
     * @param maxNum
     */
    public static void inputCountFilter(EditText edt,TextView inputCount,int maxNum) {
        if (null == inputCount||edt==null)
            return;
        inputCount.setText(MessageFormat.format("{0}/{1}",0,maxNum));
        edt.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxNum)});
        edt.addTextChangedListener(new TextWatcher() {
            private CharSequence wordNum;//記錄輸入的字?jǐn)?shù)
            private int selectionStart;
            private int selectionEnd;

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                wordNum = s;//實(shí)時(shí)記錄輸入的字?jǐn)?shù)
            }

            @Override
            public void afterTextChanged(Editable s) {
                //TextView顯示剩余字?jǐn)?shù)
                inputCount.setText(MessageFormat.format("{0}/{1}",s.length(),maxNum));
                selectionStart = edt.getSelectionStart();
                selectionEnd = edt.getSelectionEnd();
                if (wordNum.length() > maxNum) {
                    //刪除多余輸入的字(不會(huì)顯示出來(lái))
                    s.delete(selectionStart - 1, selectionEnd);
                    int tempSelection = selectionEnd;
                    edt.setText(s);
                    edt.setSelection(tempSelection);//設(shè)置光標(biāo)在最后
                }
            }
        });
    }

TextView 不同大小字體

/**
     * 設(shè)置一個(gè)textview顯示大小不同的字體
     *
     * @param textView
     * @param text
     * @param textSize dip
     * @param start
     * @param end
     */
    public static void setAbsoluteSizeSpan(TextView textView, String text, int textSize, int start, int end) {
        Spannable sp = new SpannableString(text);
        sp.setSpan(new AbsoluteSizeSpan(textSize, true), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        textView.setText(sp);
    }

Textview .fromHtml() 過(guò)時(shí)處理

@SuppressWarnings("deprecation")
    public static CharSequence fromHtml(String content) {
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
            return Html.fromHtml(content,Html.FROM_HTML_MODE_LEGACY);
        } else {
            return Html.fromHtml(content);
        }
    }

Edittext 字母輸入小寫(xiě)顯示大寫(xiě)轉(zhuǎn)換

注:僅顯示,調(diào)用getText()獲取的還是輸入時(shí)的狀態(tài)

/**
     * 小寫(xiě)轉(zhuǎn)大寫(xiě)的方法
     *
     * @return
     */
    public static ReplacementTransformationMethod UpperCaseTransform() {
        return new ReplacementTransformationMethod() {

            @Override
            protected char[] getOriginal() {
                char[] aa = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
                return aa;
            }

            @Override
            protected char[] getReplacement() {
                char[] cc = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
                return cc;
            }
        };
    }

跳轉(zhuǎn)抖音個(gè)人詳情或視頻詳情

1、user id獲取>進(jìn)入個(gè)人界面點(diǎn)擊分享,復(fù)制分享短鏈(如:https://v.douyin.com/J1q7Nfd/),將短鏈放到瀏覽器中訪問(wèn)得到長(zhǎng)鏈(如:https://www.iesdouyin.com/share/user/37379769094355?...),其中“37379769094355”就是id
2、detail id獲取>點(diǎn)擊分享,復(fù)制分享短鏈(如:https://v.douyin.com/J1q7Nxsd/),將短鏈放到瀏覽器中訪問(wèn)得到長(zhǎng)鏈(如:https://www.iesdouyin.com/share/video/683024568564478735/?...),其中“683024568564478735”就是id

public static void openDouyin(Context mContext,boolean isUser,String id) {
        String user = MessageFormat.format("snssdk1128://user/profile/{0}",id);
        String detail = MessageFormat.format("snssdk1128://aweme/detail/{0}",id);
        try {
            Uri uri = Uri.parse(isUser?user:detail);
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
            mContext.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

不定時(shí)記錄...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容