Android學習筆記

          我的Android之路
          posts - 13, comments - 3, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          反鋸齒辦法

          Posted on 2010-10-22 17:01 andteamroid 閱讀(3264) 評論(0)  編輯  收藏
          在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 = new PaintFlagsDrawFilter(0, Paint.FILTER_BITMAP_FLAG);第一個參數是你要清除的標志位,第二個參數是你要設置的標志位。此處設置為對位圖進行濾波。 2)當你在畫圖的時候,如果是View則在onDraw當中,如果是ViewGroup則在dispatchDraw中調用如下函數。 canvas.setDrawFilter( mSetfil ); ★ 最后,另外,在Drawable類及其子類中,也有函數setFilterBitmap可以用來對Bitmap進行濾波處理,這樣,當你選擇Drawable時,會有抗鋸齒的效果。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 同仁县| 四子王旗| 道孚县| 七台河市| 永顺县| 西峡县| 荔波县| 克拉玛依市| 南丰县| 尖扎县| 闽清县| 雷山县| 博湖县| 潜江市| 寿光市| 天长市| 历史| 清苑县| 科技| 什邡市| 会昌县| 临泽县| 北碚区| 江北区| 土默特左旗| 威信县| 榆树市| 大关县| 大宁县| 夏河县| 栖霞市| 贞丰县| 巢湖市| 小金县| 乌拉特中旗| 射洪县| 墨玉县| 马公市| 克拉玛依市| 柏乡县| 阳原县|