日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java setpaintmode 用法_详解Paint的各种set方法

發布時間:2024/9/27 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java setpaintmode 用法_详解Paint的各种set方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(1)?在application配置文件中關閉硬件加速:

android:allowBackup="true"android:hardwareAccelerated="false"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

……

(2)在自定義view中調用方法來關閉:

setLayerType(LAYER_TYPE_SOFTWARE, null);

注意:?因為在配置文件中關閉會讓整個應用程序無法使用硬件加速的特性,所以強烈建議用第二種方式進行關閉。

二、詳細解讀各種set方法

set(Paint src)

顧名思義為當前畫筆設置一個畫筆,說白了就是把另一個畫筆的屬性設置Copy給我們的畫筆,不累贅了

setAlpha(int?a);

設置繪制圖形的透明度,設置范圍是[0..255]

setAntiAlias(boolean aa)

打開抗鋸齒。抗鋸齒是依賴于算法的,算法決定抗鋸齒的效率,在我們繪制棱角分明的圖像時,比如一個矩形、一張位圖,我們不需要打開抗鋸齒。

setARGB(int a, int r, int g, int b)

設置繪制的顏色,a代表透明度,r,g,b代表顏色值。

setColor(int color)

設置繪制的顏色,使用顏色值來表示,該顏色值包括透明度和RGB顏色。

setColorFilter(ColorFilter filter)

設置顏色過濾,這個方法需要我們傳入一個ColorFilter參數同樣也會返回一個ColorFilter實例。?如需詳細了解,請參考:

setDither(boolean?dither)

setElegantTextHeight(boolean elegant)

具體效果未知,個人測試后出現了沒有此方法的異常,百度無果。故,暫時不推薦使用。

setFakeBoldText (boolean fakeBoldText)

設置文本仿粗體。注意設置在小字體上效果會非常差。

setFilterBitmap(boolean filter)

如果該項設置為true,則圖像在動畫進行中會濾掉對Bitmap圖像的優化操作,加快顯示速度,本設置項依賴于dither和xfermode的設置。

setFlags?(int flags)

設置標志,還是對paint進行樣式的設置。比如:

// 實例化畫筆并打開抗鋸齒

mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

setFontFeatureSettings(String settings)

setHinting(int mode)

setLetterSpacing(float letterSpacing)

設置行間距,默認是0.

setLinearText (boolean linearText)

設置是否打開線性文本標識,這玩意對大多數人來說都很奇怪不知道這玩意什么意思。想要明白這東西你要先知道文本在Android中是如何進行存儲和計算的。在Android中文本的繪制需要使用一個bitmap作為單個字符的緩存,既然是緩存必定要使用一定的空間,我們可以通過setLinearText (true)告訴Android我們不需要這樣的文本緩存。

setMaskFilter(MaskFilter maskfilter)

setMaskFilter(MaskFilter maskfilter)是paint中的方法,它可以用來對圖像進行一定的處理。?如需詳細了解,請參考:

setPathEffect(PathEffect?effect)

設置繪制路徑的效果,如點畫線等?。?如需詳細了解,請參考:

setRasterizer (Rasterizer rasterizer)

設置光柵,光柵這東西涉及太多太多物理知識。該方法同樣不支持HW在API 21中被遺棄了,所以不推薦使用。

setShadowLayer(float radius, float dx, float dy, int shadowColor)

radius表示陰影的擴散半徑;dx和dy表示陰影平面上的偏移值;shadowColor就不說了陰影顏色。

注意:?這個方法不支持硬件加速,所以我們要測試時必須先關閉硬件加速。

該方法為我們繪制的圖形添加一個陰影層效果:

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

// 關閉單個view的硬件加速

setLayerType(LAYER_TYPE_SOFTWARE, null);

// 先繪制位圖

mPaint.setColor(Color.RED);

// 設置陰影效果

mPaint.setShadowLayer(10, 3, 3, Color.DKGRAY);

// 畫一個矩形

canvas.drawRect(200, 200, 600, 600, mPaint);

}

BlurMaskFilter可以模擬類似效果,跟BlurMaskFilter比起來setShadowLayer()方法是不是更簡捷呢?但是BlurMaskFilter能做的setShadowLayer卻不一定能做到哦!

setStrokeCap(Paint.Cap cap)

該方法用來設置我們畫筆的?筆觸風格?,比如:ROUND,表示是圓角的筆觸。那么什么叫筆觸呢,其實很簡單,就像我們現實世界中的筆,如果你用圓珠筆在紙上戳一點,那么這個點一定是個圓,即便很小,它代表了筆的筆觸形狀,如果我們把一支鉛筆筆尖削成方形的,那么畫出來的線條會是一條彎曲的“矩形”,這就是筆觸的意思。除了ROUND,Paint.Cap還提供了另外兩種類型:SQUARE和BUTT

setStrokeJoin(Paint.Join join)

這個方法用于設置接合處的形態,就像你用代碼畫了一條線,但是這條線其實是由無數條小線拼接成的,拼接處的形狀就由該方法指定。可選參數是:BEVEL,MITER,ROUND。

mPaint.setStrokeJoin(Paint.Join.ROUND);

setStrokeWidth(float width);

當畫筆樣式(style)為STROKE或FILL_OR_STROKE時(空心樣式時),設置筆刷的粗細度。

setStrokeMiter(float miter )

設置筆畫的傾斜度,取值:>=0。如:小時候用的鉛筆,削的時候斜與垂直削出來的筆尖效果是不一樣的。主要是用來設置筆觸的連接處的樣式。可以和setStrokeJoin()來比較比較。

setStyle(Style style)

置畫筆樣式,如果不設置,默認是全部填充(FILL)。可選項為:FILL,FILL_OR_STROKE,或STROKE

畫筆樣式分三種:

1.Paint.Style.STROKE:描邊

2.Paint.Style.FILL_AND_STROKE:描邊并填充

3.Paint.Style.FILL:填充

setSubpixelText?(boolean??subpixelText?)

設置自像素。如果該項為true,將有助于文本在LCD屏幕上的顯示效果。

setXfermode(Xfermode xfermode)

設置圖像的混合模式,詳細使用方式請參考:

——————————————————————————————————————

注意:下方的方法僅僅是簡要的介紹,如果想要詳細了解,請移步:

setStrikeThruText (boolean strikeThruText)

設置文本刪除線。

setTextAlign (Paint.Align align)

設置文本的對齊方式,可供選的方式有三種:CENTER,LEFT和RIGHT。

setTextLocale (Locale locale)

設置地理位置,這里如果你要使用,直接傳入Locale.getDefault()即可。它用來設置文本的區域比如中文、日文等。

setTextScaleX (float scaleX)

將文本沿X軸水平縮放,默認值為1,當值大于1會沿X軸水平放大文本,當值小于1會沿X軸水平縮放文本

setTextSize (float textSize)

設置文字的大小,但是要注意該值必需大于零。

setTextSkewX(float skewX)

設置文本在水平方向上的傾斜。這個傾斜值沒有具體的范圍,但是官方推崇的值為-0.25可以得到比較好的傾斜文本效果,值為負右傾值為正左傾,默認值為0。

setTypeface?(Typeface typeface)

設置文本字體樣式。

setUnderlineText(boolean underlineText)

總結

以上是生活随笔為你收集整理的java setpaintmode 用法_详解Paint的各种set方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av操操操 | 国产 日韩 欧美 制服丝袜 | 韩国禁欲系高级感电影 | 久久色中文字幕 | 免费中文字幕日韩欧美 | 色老久久| 一本一道久久a久久精品综合 | 黄色大片免费观看视频 | 日韩av在线网站 | 蜜桃av在线免费观看 | 精品国产aⅴ | 国产电影一区在线观看 | 久久久青青 | 性大毛片视频 | 精品国产乱码一区二区三 | 男插女视频在线观看 | 日韩免费观看一区二区 | 欧美激情一区 | 日韩av中文字幕在线 | 国产农村妇女毛片精品久久麻豆 | 精品国产一区二区三区久久 | 国产麻豆成人传媒免费观看 | 大奶子在线观看 | 国产精品久久久久野外 | 男人天堂五月天 | 女人脱下裤子让男人桶 | 日本一二三不卡视频 | 国产情趣视频 | 免费v片在线观看 | 亚洲男人在线天堂 | 肉肉av福利一精品导航 | 99热视| 91精彩刺激对白 | 久久美利坚 | 催眠调教艳妇成肉便小说 | 日韩视频 中文字幕 | 日本一级黄 | 久久久免费高清视频 | 国产精品久久影院 | 亚洲综合色吧 | 中文字幕亚洲不卡 | 久久久久久久久久电影 | 欧美天天影院 | 超碰超在线 | 日韩av网页 | 久久综合久久综合久久 | 91视频在线观看 | 欧美在线视频一区二区 | 欧美成人一区二免费视频软件 | 欧美在线激情 | 国产日韩一级片 | 色吊丝一区二区 | 麻豆av剧情| 精品国产aⅴ一区二区三区四川人 | 久久香蕉国产 | 三级在线看中文字幕完整版 | 久久午夜福利电影 | 涩涩视频在线播放 | 欧美性做爰猛烈叫床潮 | 国产精品99久久久久 | 美女光屁屁露胸胸 | 激情久久久久久久 | 欧美aⅴ在线观看 | ass日本| 亚洲视频在线播放 | 婷婷综合一区 | 国产成人99久久亚洲综合精品 | 国产最新精品视频 | 亚洲国产电影在线观看 | 国产欧美日韩三区 | 5d肉蒲团之性战奶水 | 美女被娇喘流出白 | 182午夜视频 | av色先锋| 在线尤物 | 囯产精品一品二区三区 | 国产无遮无挡120秒 欧美综合图片 | 一本色道久久88综合日韩精品 | 99国产精品国产免费观看 | caoporn超碰97| 中文字幕日韩三级片 | 成人高清免费 | 中文在线а√天堂官网 | 国产精品无码一区二区三区免费 | 日韩avxxx | 亚洲视频免费在线 | 成人精品视频99在线观看免费 | 成人夜间视频 | 伊人77 | 国产18一19sex性护士 | 老地方在线观看免费动漫 | 爱情岛亚洲首页论坛小巨 | 天天综合在线视频 | xxxxx黄色片 噜噜噜噜噜色 | 99热一区 | 亚洲av无码专区国产乱码不卡 | 欧美被狂躁喷白浆精品 | 夏目彩春娇喘呻吟高潮迭起 | 蜜桃视频在线观看一区二区 |