Android中Paint的一些使用心得記錄


Paint是Android api中繪制文字,圖形的重要類,位於android.graphics包下,這個類早早就出現了。類似於JavaScript中的Paint,Paint的使用也離不開Canvas。

Paint實際不是真正的"畫筆",實際作"畫"的是底層,對graphics包下的這個Paint是不可見的,這個Paint封裝了各種作畫的參數。

初始化Paint,可以直接通過默認的構造器

Paint mPaint = new Paint();

常用的方法。(getXXX,isXXX等省略)

  • setTextSize() :如果要繪制文字,一般需要設置字體大小,不然默認繪制12px,該方法決定兩個小寫'x'字母的寬度。
  • setColor(int color):傳入一個十六進制的顏色參數,可設置ARGB的顏色
  • setStyle(int style): 設置畫筆風格,有FILL,STROKE,FILL_AND_STROKE三種選擇
  • setStrokeWidth(float width):設置畫筆粗細
  • setAntAlias(boolean):設置是否防鋸齒
  • setDither(boolean):設置是否防抖動。在繪制圖片時,如果有超過屏幕能顯示最大效果時,這個決定了如何down-sample(降低取樣)。如果為false,繪制速度會變快,但繪制的顏色精度會下降(比如8888->565),true則會試圖在這個down-sample中 修正這些錯誤,使得畫面較為柔和。
  • setFlags(int flag):設置畫筆的各項參數,與setXXX方法有同樣的效果,比如setFlags(ANTI_ALIAS_FLAG) 等效於setAntiAlias(true)
  • 無清除flag的方法,Paint提供reset()方法,重置畫筆所有參數

內部類

  • Paint.FontMetrics和Paint.FontMetricsInt:包含float或int類型的五個值-top,bottom,ascent,descent,leading。分別代表在給定的一個textsize下,一段文字可以繪制的最高處的Y值;可繪制的最低處的Y值;一段文字中單個字符可以到達的最高Y值;一段文字中單個字符可以到達的最低Y值;字體間的間距。在android字體坐標系中,默認原點位於左下角,X軸與基線重合,所以top,ascent為負值,bottom,descent為正值。不同的字體,在同樣的文本和size下,這五個值也不盡相同。FontMetrics類中的五個為Float,FontMetricsInt則為Int類型,是前者向下取整的結果。
  • Paint.Align:包括LEFT,CENTER,RIGHT。以原點為基准,分別繪制在原點右側,原點兩側,原點左側。給人的感覺好像是原點移動了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM