操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    日常開發(fā)中碰到了各種開發(fā)問題,撿選了一部分分享出來。有些問題非常簡單,屬于編碼規(guī)范類,有些屬于特定情況下碰到的問題,不是很常見。不太準(zhǔn)確的地方,歡迎共同探討下~

    1.requestFeature() must be called before adding content

    requestWindowFeature(Window.FEATURE_NO_TITLE);// 隱藏標(biāo)題
    

    需要在onCreate之前調(diào)用,否則在4.4.2的機(jī)型上會報(bào)錯:

    2.小米6.0系統(tǒng)打開瀏覽器時閃退

    Calling startActivity() from outside of an Activity context requires the FLAG_NEW_TASK flag.

    public static void openBrowser(Context context, String url) {
        Uri uri=Uri.parse(url);
        Intent intent=new Intent(Intent.ACTION_VIEW, uri);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }
    
    

    也就是要加上面的FLAG_ACTICITY_NEW_TASK(其它手機(jī)看到是ok的)

    3.設(shè)置TextView的顏色值無效

       titleTv.setTextColor(colorId);//錯誤的方式(常見封裝類調(diào)用)
       titleTv.setTextColor(ContextCompat.getColor(context,colorId));//正確的方式
    

    4.國際化引用問題

    a.靜態(tài)/類全局變量需要單獨(dú)判斷;
    b.string 中文本空格效果無法體現(xiàn),給字符串加上雙引號

    <string name="Chinese"> 中   文 </string>
    <string name="Chinese">" 中   文 "</string>
    

    注意:使用Application.getString的方式,在切換語言后,并沒有切換這種方式引用的資源內(nèi)容??梢愿臑榱硗獾腶ctivity里面的getString方法獲取

    5.魅族7.0的系統(tǒng)在webview中點(diǎn)擊后閃退

    ActivityManagerForce removing ActivityRecord{6dd5804 u0 包名/當(dāng)前WebviewActivity t8819}: app died, no saved state
    

    不支持onCustumView方法,去掉即可

    6.button上的英文默認(rèn)為大寫

    android:textAllCaps="false"
    

    7.vivo上收到push后打不開指定的頁面(根本就沒反應(yīng))

    系統(tǒng)會自動彈出,但是進(jìn)入設(shè)置打開即可。

    8.TextView顯示不全

    TextView使用WrapContent,lines=1但是內(nèi)容顯示不全
    只能顯示在屏幕內(nèi)的部分,在屏幕外的部分,在屬性動畫拉出來看的時候就沒有。
    (這種問題發(fā)生在自定義跑馬燈控件時)

    public static int getTextViewLength(TextView view, String text) {
        TextPaint paint=view.getPaint();
        int textLength=(int) Layout.getDesiredWidth(text, 0, text.length(), paint);
        return textLength;
    }
    

    然后給TextView設(shè)置寬度。

    9. No Activity found to handle Intent { act=android.intent.action.VIEW_DOWNLOADS flg=0x10000000 }

    三星 SM-C7000(C7) 6.0.1的系統(tǒng)就會出現(xiàn)在這個問題

    if(intent.resolve(context.getPackageManager))!=null){
    ...
    }
    

    使用隱式intent進(jìn)行startActivity時,最好加上該種判斷和try catch,因?yàn)楸2粶?zhǔn)哪種機(jī)型就出問題了

    10.設(shè)置dialog邊角

    getWindow().setBackgroundDrawableResource(R.drawable.widget_dialog_round_corner);
    

    11.三星機(jī)型報(bào)錯E/rsC++(16241): RS CPP error: Blur radius out of 0-25 pixel bound

    大意就是TextView的shadowRadius不能大于25,是xml代碼中的問題,改小shadowRadius即可。

    包括button下的部分模糊的情況也是該問題導(dǎo)致的。

    12.分享鏈接至微信無法顯示鏈接的縮略圖

    友盟分享鏈接如果內(nèi)容中帶有紅包字樣,那么圖片會失效顯示不出來(分享的主體倒是可以自己看到)

    13.小米手機(jī)上的App使用瀏覽器打開尾綴帶apk的地址無法正常下載安裝

    阿里云、應(yīng)用寶的地址是會被攔截到使用小米手機(jī)系統(tǒng)自帶的下載器進(jìn)行下載安裝,而這個下載器會默認(rèn)使用迅雷下載組件,阿里云的地址下載完畢后點(diǎn)擊下載完成的push會顯示文件無法識別(而應(yīng)用寶的地址能正常安裝),小米系及華為應(yīng)用的下載地址以及非.apk結(jié)尾的地址則會按照正常流程跳入瀏覽器進(jìn)行下載。關(guān)閉小米手機(jī)上的迅雷下載組件的功能后,則可以通過點(diǎn)擊push正常安裝,不會出現(xiàn)文件無法識別的問題。

    所以解決這個問題的很簡單,把下載地址換成非apk結(jié)尾的地址即可。

    14.桌面圖標(biāo)不更換的原因

    android:roundIcon="@mipmap/logo"
    

    application中這個屬性也要設(shè)置

    15.優(yōu)化打開應(yīng)用白屏問題

    白屏的原因是系統(tǒng)本身啟動是需要時間的(背景默認(rèn)就是白色)。
    一般做法:

    設(shè)置Theme

    <style name="MNoActionBar" parent="Theme.AppCompat.NoActionBar">
        <!--<item name="android:windowFullscreen">false</item>-->
        <!--<item name="android:windowBackground">@drawable/welcome</item>//此行可以給window設(shè)置背景圖片,單獨(dú)設(shè)置此項(xiàng)不設(shè)置透明的話是沒有延遲打開的情況(無白屏切換,和啟動頁使用同一資源則無縫切換,但默認(rèn)是全屏的)-->
        <item name="android:windowIsTranslucent">true</item>//設(shè)置透明之后不會有和頁面背景圖之間色值的閃爍,同時點(diǎn)擊桌面圖標(biāo)時會有些延遲進(jìn)入頁面
    </style>
    

    針對具體的activity:如果一個activity中既要顯示全屏的啟動圖,也要等到內(nèi)容加載完畢后顯示最新內(nèi)容(非全屏),那么就應(yīng)該對相關(guān)方法的進(jìn)行判斷設(shè)置:

    private void setFullScreenEnable(boolean isEnable) {
        if (isEnable) {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //隱藏狀態(tài)欄
        } else {
            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //顯示狀態(tài)欄
        }
    
    }
    

    如果在含有Webview的頁面中,則可以分別在onCreate方法和onpageFinished的回調(diào)中進(jìn)行設(shè)置即可。

    特殊情況:如果整個頁面是加載的H5,即便使用了上面的設(shè)置,還是會有白屏一閃而過的情景。這是H5頁面本身渲染導(dǎo)致的,那么目前的處理方法是針對啟動頁做個延時dismiss的效果,這樣就遮蓋了白屏一閃而過的瞬間:

    fullLoadingView.postDelayed(new Runnable() {//需要做下延遲,否則會出現(xiàn)頁面一瞬間白屏的情況(應(yīng)該是頁面渲染H5的原因)
        @Override
        public void run() {
            fullLoadingView.setVisibility(View.GONE);
            setFullScreenEnable(false);
        }
    }, 300);
    

    16.打開外部應(yīng)用時,多個頁面被調(diào)起

    B應(yīng)用打開A應(yīng)用的cActivity時,A應(yīng)用的其它Activity也會被打開(之前存在的,A應(yīng)用一直在后臺)
    這是taskAffinity的緣故,因?yàn)楣灿昧送粋€任務(wù)棧,所以在manifest文件中設(shè)置另外一個任務(wù)棧即可:

    android:taskAffinity=".payAct"
    

    17.獲取webview的bitmap

    根據(jù)得到網(wǎng)頁的高度來設(shè)置webview的高度。同時h5做好適配,等比縮放寬高。與此同時可能出現(xiàn),獲取bitmap信息有空白的ui內(nèi)容,這時候要做延遲獲取,因?yàn)閛nPageFinished方法只是拉取了代碼,并不表示頁面渲染完畢。

    webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
    

    設(shè)置為NARROW_COLUMNS時,如果webview本身不是全屏的,則分享出去的圖片則不能鋪滿全屏。

    18.Error inflating class ImageView

    Xml肯定沒寫錯,但是為啥高版本可以,低版本就報(bào)錯呢?

    這是因?yàn)閳D片資源文件被放到了低版本文件夾中去了,所以高版本inflate不到。

    19.EditText digits屬性

    android:digits="0123456789"
    

    常用來限定EditText的輸入格式。

    20. android studio 全局搜索結(jié)果不全

    緩存原因

    21. bottomSheetDialog設(shè)置圓角

    <style name="BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
        <item name="bottomSheetStyle">@style/bottomSheetStyleWrapper</item>
    </style>
    <style name="bottomSheetStyleWrapper" parent="Widget.Design.BottomSheet.Modal">
        <item name="android:background">@android:color/transparent</item>
    </style>
    
    new BottomSheetDialog(context,R.style.BottomSheetDialog)//設(shè)置style
    

    22.ScrollView中的LinearLayout的layout_weigt無效

    ScrollView中添加:

    android:fillViewport="true" 
    

    23.Process 'command 'E:\android\tool\sdk\build-tools.0.3\aapt.exe'' finished with non-zero exit value 1

    重啟清緩存,構(gòu)建、提高版本都無效,原因在于編碼不規(guī)范!

    android:drawableTop="2dp" //錯誤代碼?。?!
    

    一般出現(xiàn)該中問題可以比的下文件的history看看有哪些資源文件引用等不規(guī)范的地方,實(shí)在找不出就回退版本來看下。

    24.dialog中的TextView顯示不全的問題

    是因?yàn)槭褂昧薱ontentTv.setText(Html.fromHtml(content));
    而不是直接的contentTv.setText(content);
    前者的換行也沒用,也有可能因?yàn)槠湮谋竞绣e誤的HTML標(biāo)簽文本的緣故,所以需要在使用時要考慮下兼容。

    25.浮點(diǎn)型精度問題

    所以,結(jié)合業(yè)務(wù)情況來使用BigDecimal會好些。

    最后

    不用多說,相信大家都有一個共識:無論什么行業(yè),最牛逼的人肯定是站在金字塔端的人。所以,想做一個牛逼的程序員,那么就要讓自己站更高,成為技術(shù)大牛并不是一朝一夕的事情,需要時間的沉淀和技術(shù)的積累。

    關(guān)于這一點(diǎn),在我當(dāng)時確立好Android方向時,就已經(jīng)開始梳理自己的成長路線了,包括技術(shù)要怎么系統(tǒng)地去學(xué)習(xí),都列得非常詳細(xì)。

    這里最后分享耗時一年多整理的一系列Android學(xué)習(xí)資源:Android源碼解析、Android第三方庫源碼筆記、Android進(jìn)階架構(gòu)師七大專題學(xué)習(xí)、歷年BAT面試題解析包、Android大佬學(xué)習(xí)筆記等等。

    這些內(nèi)容均免費(fèi)分享給大家,需要完整版的朋友,直接轉(zhuǎn)發(fā)+點(diǎn)贊+私信回復(fù)【資料】一鍵領(lǐng)?。。?!

    日常開發(fā)中碰到了各種開發(fā)問題,撿選了一部分分享出來。有些問題非常簡單,屬于編碼規(guī)范類,有些屬于特定情況下碰到的問題,不是很常見。不太準(zhǔn)確的地方,歡迎共同探討下~

    1.requestFeature() must be called before adding content

    requestWindowFeature(Window.FEATURE_NO_TITLE);// 隱藏標(biāo)題
    

    需要在onCreate之前調(diào)用,否則在4.4.2的機(jī)型上會報(bào)錯:

    2.小米6.0系統(tǒng)打開瀏覽器時閃退

    Calling startActivity() from outside of an Activity context requires the FLAG_NEW_TASK flag.

    public static void openBrowser(Context context, String url) {
        Uri uri=Uri.parse(url);
        Intent intent=new Intent(Intent.ACTION_VIEW, uri);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }
    
    

    也就是要加上面的FLAG_ACTICITY_NEW_TASK(其它手機(jī)看到是ok的)

    3.設(shè)置TextView的顏色值無效

       titleTv.setTextColor(colorId);//錯誤的方式(常見封裝類調(diào)用)
       titleTv.setTextColor(ContextCompat.getColor(context,colorId));//正確的方式
    

    4.國際化引用問題

    a.靜態(tài)/類全局變量需要單獨(dú)判斷;
    b.string 中文本空格效果無法體現(xiàn),給字符串加上雙引號

    <string name="Chinese"> 中   文 </string>
    <string name="Chinese">" 中   文 "</string>
    

    注意:使用Application.getString的方式,在切換語言后,并沒有切換這種方式引用的資源內(nèi)容??梢愿臑榱硗獾腶ctivity里面的getString方法獲取

    5.魅族7.0的系統(tǒng)在webview中點(diǎn)擊后閃退

    ActivityManagerForce removing ActivityRecord{6dd5804 u0 包名/當(dāng)前WebviewActivity t8819}: app died, no saved state
    

    不支持onCustumView方法,去掉即可

    6.button上的英文默認(rèn)為大寫

    android:textAllCaps="false"
    

    7.vivo上收到push后打不開指定的頁面(根本就沒反應(yīng))

    系統(tǒng)會自動彈出,但是進(jìn)入設(shè)置打開即可。

    8.TextView顯示不全

    TextView使用WrapContent,lines=1但是內(nèi)容顯示不全
    只能顯示在屏幕內(nèi)的部分,在屏幕外的部分,在屬性動畫拉出來看的時候就沒有。
    (這種問題發(fā)生在自定義跑馬燈控件時)

    public static int getTextViewLength(TextView view, String text) {
        TextPaint paint=view.getPaint();
        int textLength=(int) Layout.getDesiredWidth(text, 0, text.length(), paint);
        return textLength;
    }
    

    然后給TextView設(shè)置寬度。

    9. No Activity found to handle Intent { act=android.intent.action.VIEW_DOWNLOADS flg=0x10000000 }

    三星 SM-C7000(C7) 6.0.1的系統(tǒng)就會出現(xiàn)在這個問題

    if(intent.resolve(context.getPackageManager))!=null){
    ...
    }
    

    使用隱式intent進(jìn)行startActivity時,最好加上該種判斷和try catch,因?yàn)楸2粶?zhǔn)哪種機(jī)型就出問題了

    10.設(shè)置dialog邊角

    getWindow().setBackgroundDrawableResource(R.drawable.widget_dialog_round_corner);
    

    11.三星機(jī)型報(bào)錯E/rsC++(16241): RS CPP error: Blur radius out of 0-25 pixel bound

    大意就是TextView的shadowRadius不能大于25,是xml代碼中的問題,改小shadowRadius即可。

    包括button下的部分模糊的情況也是該問題導(dǎo)致的。

    12.分享鏈接至微信無法顯示鏈接的縮略圖

    友盟分享鏈接如果內(nèi)容中帶有紅包字樣,那么圖片會失效顯示不出來(分享的主體倒是可以自己看到)

    13.小米手機(jī)上的App使用瀏覽器打開尾綴帶apk的地址無法正常下載安裝

    阿里云、應(yīng)用寶的地址是會被攔截到使用小米手機(jī)系統(tǒng)自帶的下載器進(jìn)行下載安裝,而這個下載器會默認(rèn)使用迅雷下載組件,阿里云的地址下載完畢后點(diǎn)擊下載完成的push會顯示文件無法識別(而應(yīng)用寶的地址能正常安裝),小米系及華為應(yīng)用的下載地址以及非.apk結(jié)尾的地址則會按照正常流程跳入瀏覽器進(jìn)行下載。關(guān)閉小米手機(jī)上的迅雷下載組件的功能后,則可以通過點(diǎn)擊push正常安裝,不會出現(xiàn)文件無法識別的問題。

    所以解決這個問題的很簡單,把下載地址換成非apk結(jié)尾的地址即可

    14.桌面圖標(biāo)不更換的原因

    android:roundIcon="@mipmap/logo"
    

    application中這個屬性也要設(shè)置

    15.優(yōu)化打開應(yīng)用白屏問題

    白屏的原因是系統(tǒng)本身啟動是需要時間的(背景默認(rèn)就是白色)。
    一般做法:

    設(shè)置Theme

    <style name="MNoActionBar" parent="Theme.AppCompat.NoActionBar">
        <!--<item name="android:windowFullscreen">false</item>-->
        <!--<item name="android:windowBackground">@drawable/welcome</item>//此行可以給window設(shè)置背景圖片,單獨(dú)設(shè)置此項(xiàng)不設(shè)置透明的話是沒有延遲打開的情況(無白屏切換,和啟動頁使用同一資源則無縫切換,但默認(rèn)是全屏的)-->
        <item name="android:windowIsTranslucent">true</item>//設(shè)置透明之后不會有和頁面背景圖之間色值的閃爍,同時點(diǎn)擊桌面圖標(biāo)時會有些延遲進(jìn)入頁面
    </style>
    

    針對具體的activity:如果一個activity中既要顯示全屏的啟動圖,也要等到內(nèi)容加載完畢后顯示最新內(nèi)容(非全屏),那么就應(yīng)該對相關(guān)方法的進(jìn)行判斷設(shè)置:

    private void setFullScreenEnable(boolean isEnable) {
        if (isEnable) {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //隱藏狀態(tài)欄
        } else {
            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //顯示狀態(tài)欄
        }
    
    }
    

    如果在含有Webview的頁面中,則可以分別在onCreate方法和onpageFinished的回調(diào)中進(jìn)行設(shè)置即可。

    特殊情況:如果整個頁面是加載的H5,即便使用了上面的設(shè)置,還是會有白屏一閃而過的情景。這是H5頁面本身渲染導(dǎo)致的,那么目前的處理方法是針對啟動頁做個延時dismiss的效果,這樣就遮蓋了白屏一閃而過的瞬間:

    fullLoadingView.postDelayed(new Runnable() {//需要做下延遲,否則會出現(xiàn)頁面一瞬間白屏的情況(應(yīng)該是頁面渲染H5的原因)
        @Override
        public void run() {
            fullLoadingView.setVisibility(View.GONE);
            setFullScreenEnable(false);
        }
    }, 300);
    

    16.打開外部應(yīng)用時,多個頁面被調(diào)起

    B應(yīng)用打開A應(yīng)用的cActivity時,A應(yīng)用的其它Activity也會被打開(之前存在的,A應(yīng)用一直在后臺)
    這是taskAffinity的緣故,因?yàn)楣灿昧送粋€任務(wù)棧,所以在manifest文件中設(shè)置另外一個任務(wù)棧即可:

    android:taskAffinity=".payAct"
    

    17.獲取webview的bitmap

    根據(jù)得到網(wǎng)頁的高度來設(shè)置webview的高度。同時h5做好適配,等比縮放寬高。與此同時可能出現(xiàn),獲取bitmap信息有空白的ui內(nèi)容,這時候要做延遲獲取,因?yàn)閛nPageFinished方法只是拉取了代碼,并不表示頁面渲染完畢。

    webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
    

    設(shè)置為NARROW_COLUMNS時,如果webview本身不是全屏的,則分享出去的圖片則不能鋪滿全屏。

    18.Error inflating class ImageView

    Xml肯定沒寫錯,但是為啥高版本可以,低版本就報(bào)錯呢?

    這是因?yàn)閳D片資源文件被放到了低版本文件夾中去了,所以高版本inflate不到。

    19.EditText digits屬性

    android:digits="0123456789"
    

    常用來限定EditText的輸入格式。

    20. android studio 全局搜索結(jié)果不全

    緩存原因

    21. bottomSheetDialog設(shè)置圓角

    <style name="BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
        <item name="bottomSheetStyle">@style/bottomSheetStyleWrapper</item>
    </style>
    <style name="bottomSheetStyleWrapper" parent="Widget.Design.BottomSheet.Modal">
        <item name="android:background">@android:color/transparent</item>
    </style>
    
    new BottomSheetDialog(context,R.style.BottomSheetDialog)//設(shè)置style
    

    22.ScrollView中的LinearLayout的layout_weigt無效

    ScrollView中添加:

    android:fillViewport="true" 
    

    23.Process 'command 'E:\android\tool\sdk\build-tools.0.3\aapt.exe'' finished with non-zero exit value 1

    重啟清緩存,構(gòu)建、提高版本都無效,原因在于編碼不規(guī)范!

    android:drawableTop="2dp" //錯誤代碼?。?!
    

    一般出現(xiàn)該中問題可以比的下文件的history看看有哪些資源文件引用等不規(guī)范的地方,實(shí)在找不出就回退版本來看下。

    24.dialog中的TextView顯示不全的問題

    是因?yàn)槭褂昧薱ontentTv.setText(Html.fromHtml(content));
    而不是直接的contentTv.setText(content);
    前者的換行也沒用,也有可能因?yàn)槠湮谋竞绣e誤的HTML標(biāo)簽文本的緣故,所以需要在使用時要考慮下兼容。

    25.浮點(diǎn)型精度問題

    所以,結(jié)合業(yè)務(wù)情況來使用BigDecimal會好些。

    最后

    不用多說,相信大家都有一個共識:無論什么行業(yè),最牛逼的人肯定是站在金字塔端的人。所以,想做一個牛逼的程序員,那么就要讓自己站更高,成為技術(shù)大牛并不是一朝一夕的事情,需要時間的沉淀和技術(shù)的積累。

    關(guān)于這一點(diǎn),在我當(dāng)時確立好Android方向時,就已經(jīng)開始梳理自己的成長路線了,包括技術(shù)要怎么系統(tǒng)地去學(xué)習(xí),都列得非常詳細(xì)。

    這里最后分享耗時一年多整理的一系列Android學(xué)習(xí)資源:Android源碼解析、Android第三方庫源碼筆記、Android進(jìn)階架構(gòu)師七大專題學(xué)習(xí)、歷年BAT面試題解析包、Android大佬學(xué)習(xí)筆記等等。

    這些內(nèi)容均免費(fèi)分享給大家,需要完整版的朋友,直接轉(zhuǎn)發(fā)+點(diǎn)贊+私信回復(fù)【資料】一鍵領(lǐng)?。。?!

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有