欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android自定義View onDraw()方法會(huì)調(diào)用兩次的問題解決

 更新時(shí)間:2024年01月22日 11:29:09   作者:新鏡  
這篇文章主要介紹了Android自定義View onDraw()方法會(huì)調(diào)用兩次的問題解決,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

問題

自定義了View后,在構(gòu)造函數(shù)中設(shè)置畫筆顏色,發(fā)現(xiàn)它沒起效,但是在onDraw()里設(shè)置顏色就會(huì)起效,出問題的代碼如下:

     public RoundSeekbarView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        //布局引用調(diào)用的是兩個(gè)參數(shù)的構(gòu)造函數(shù)
        paint = new Paint(Paint.ANTI_ALIAS_FLAG);    
        paint.setAntiAlias(true);
        paint.setDither(true);
        paint.setColor(Color.RED);
     }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Log.v("RoundSeekbarView", "onDraw");
        //paint.setColor(Color.RED); //在onDraw()里設(shè)置顏色就會(huì)起效
        paint.setStrokeWidth(100);
        canvas.drawLine(100, 0,100,100,paint);
        paint.reset();
        Log.v("RoundSeekbarView", "onDraw end");
    }

我在構(gòu)造函數(shù)中設(shè)置的畫筆顏色是紅色,但是實(shí)際畫出的線是黑色的(畫筆默認(rèn)顏色是黑色),分析了一下發(fā)現(xiàn)是paint.reset()的問題,reset就是畫筆重置設(shè)置嘛,如何它就會(huì)變成默認(rèn)的黑色,這個(gè)我懂,可是為什么會(huì)把線的顏色改了?畫線的代碼明明在reset的前面。

分析

通過打日志分析發(fā)現(xiàn)onDraw()方法被執(zhí)行了兩次,也就是畫筆(紅)畫了一次---->畫筆reset(變回默認(rèn)顏色黑色了)---->又執(zhí)行了onDraw,黑筆畫了一次,覆蓋了原來(lái)的紅線。

因此最后看到的顏色會(huì)是黑色,所有有關(guān)畫筆的設(shè)置還是寫在onDraw()里好一點(diǎn)。

目前不知道為什么onDraw()為什么會(huì)執(zhí)行兩次,有沒有大佬可以賜教。

到此這篇關(guān)于Android自定義View onDraw()方法會(huì)調(diào)用兩次的文章就介紹到這了,更多相關(guān)Android自定義View onDraw()方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于android連續(xù)點(diǎn)擊出現(xiàn)多個(gè)Activity界面的解決方法

    關(guān)于android連續(xù)點(diǎn)擊出現(xiàn)多個(gè)Activity界面的解決方法

    這篇文章主要介紹了關(guān)于android連續(xù)點(diǎn)擊出現(xiàn)多個(gè)Activity界面的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-03-03
  • Android ListView介紹及優(yōu)化方案

    Android ListView介紹及優(yōu)化方案

    這篇文章主要介紹了Android ListView介紹及優(yōu)化方案的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • Android 自定義TextView去除paddingTop和paddingBottom

    Android 自定義TextView去除paddingTop和paddingBottom

    這篇文章主要介紹了Android 自定義TextView去除paddingTop和paddingBottom的相關(guān)資料,這里提供實(shí)例來(lái)幫助大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-09-09
  • Android入門之使用SimpleAdapter實(shí)現(xiàn)復(fù)雜界面布局

    Android入門之使用SimpleAdapter實(shí)現(xiàn)復(fù)雜界面布局

    這篇文章主要為大家詳細(xì)介紹了Android如何使用SimpleAdapter實(shí)現(xiàn)復(fù)雜的界面布局,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Android有一定的幫助,需要的可以參考一下
    2022-11-11
  • Android布局——Preference自定義layout的方法

    Android布局——Preference自定義layout的方法

    PreferenceActivity是一個(gè)方便設(shè)置管理的界面,但是對(duì)于界面顯示來(lái)說(shuō)比較單調(diào),所以自定義布局就很有必要了,下面與大家分享下Preference中自定義layout的方法
    2013-06-06
  • 淺析Android中build.gradle的實(shí)用技巧

    淺析Android中build.gradle的實(shí)用技巧

    這篇文章主要介紹了淺析Android中build.gradle的實(shí)用技巧,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2019-03-03
  • Kotlin協(xié)程到底是如何切換線程的

    Kotlin協(xié)程到底是如何切換線程的

    kotlin協(xié)程可以用同步方式寫異步代碼,自動(dòng)實(shí)現(xiàn)對(duì)線程切換的管理,本文主要給大家講解kotlin協(xié)程到底是怎么切換線程的,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • Android仿視頻加載旋轉(zhuǎn)小球動(dòng)畫效果的實(shí)例代碼

    Android仿視頻加載旋轉(zhuǎn)小球動(dòng)畫效果的實(shí)例代碼

    這篇文章主要介紹了Android仿視頻加載旋轉(zhuǎn)小球動(dòng)畫效果的實(shí)例代碼,文中給大家提到了PathMeasure的用法,介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • Android Kotlin Flow 冷熱流詳解

    Android Kotlin Flow 冷熱流詳解

    在Android開發(fā)中,Flow是Kotlin協(xié)程庫(kù)的重要組成部分,用于處理異步數(shù)據(jù)流,它能夠異步生產(chǎn)多個(gè)值,類似于RxJava中的Observable,本文介紹Android Kotlin Flow 冷熱流,感興趣的朋友一起看看吧
    2024-11-11
  • Android編程之短信列表的時(shí)間顯示實(shí)例分析

    Android編程之短信列表的時(shí)間顯示實(shí)例分析

    這篇文章主要介紹了Android編程之短信列表的時(shí)間顯示,實(shí)例分析了Android中短信列表的時(shí)間顯示及具體注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11

最新評(píng)論