在android中,目前,我知道有兩種出現鋸齒的情況。
①當我們用canvas繪製點陣圖的時候,如果對位圖進行了選擇,則位圖會出現鋸齒。
②在用view的rotateanimation做動畫時候,如果view當中包含有大量的圖形,也會出現鋸齒。我們分別以這兩種情況加以考慮。
◆用canvas繪製位的的情況。在用canvas繪製點陣圖時,一般地,我們使用drawbitmap函式家族,在這些函式中,都有乙個paint引數,要做到防止鋸齒,我們就要使用到這個引數。如下:首先在你的建構函式中,需要建立乙個paint。paint mpaint = new paint(); 然後,您需要設定兩個引數: 1)mpaint.setantialias();2)mpaint.setbitmapfilter(true)。第乙個函式是用來防止邊緣的鋸齒,第二個函式是用來對位圖進行濾波處理。最後,在畫圖的時候,呼叫drawbitmap函式,只需要將整個paint傳入即可。
◆有時候,當你做rotateanimation時,你會發現,討厭的鋸齒又出現了。這個時候,由於你不能控制點陣圖的繪製,只能用其他方法來實現防止鋸齒。另外,如果你畫的點陣圖很多。不想每個點陣圖的繪製都傳入乙個paint。還有的時候,你不可能控制每個視窗的繪製的時候,您就需要用下面的方法來處理——對整個canvas進行處理。1)在您的建構函式中,建立乙個paint濾波器。 paintflagsdrawfilter msetfil = newpaintflagsdrawfilter(0,paint.filter_bitmap_flag);第乙個引數是你要清除的標誌位,第二個引數是你要設定的標誌位。此處設定為對位圖進行濾波。2)當你在畫圖的時候,如果是view則在ondraw當中,如果是viewgroup則在dispatchdraw中呼叫如下函式。canvas.setdrawfilter( msetfil );
★最後,另外,在drawable類及其子類中,也有函式setfilterbitmap可以用來對bitmap進行濾波處理,這樣,當你選擇drawable時,會有抗鋸齒的效果。
抗鋸齒方法兩種
from 在android中,目前,我知道有兩種出現鋸齒的情況。當我們用canvas繪製點陣圖的時候,如果對位圖進行了選擇,則位圖會出現鋸齒。在用view的rotateanimation做動畫時候,如果view當中包含有大量的圖形,也會出現鋸齒。我們分別以這兩種情況加以考慮。用canvas繪製位的的...
Canvas抗鋸齒方法兩種
在android中,目前,我知道有兩種出現鋸齒的情況。當我們用canvas繪製點陣圖的時候,如果對位圖進行了選擇,則位圖會出現鋸齒。在用view的rotateanimation做動畫時候,如果view當中包含有大量的圖形,也會出現鋸齒。我們分別以這兩種情況加以考慮。用canvas繪製位的的情況。在用...
兩種排序方法
題目描述 考拉有n個字串字串,任意兩個字串長度都是不同的。考拉最近學習到有兩種字串的排序方法 1.根據字串的字典序排序。例如 car carriage cats doggies koala 2.根據字串的長度排序。例如 car cats koala doggies carriage 考拉想知道自己的...