我使用抗鋸齒來使我的圖像更流暢。在使用抗鋸齒功能時,圖像周圍會出現黑邊。發生這種情況是因爲Android使用黑色並將其與圖像中的黃色混合。 這是一個gernal問題!當我繪製一個矩形並將alpha值設置爲127時,圖像也變得安靜黑暗。而不是使用黑色Android應該使用白色來繪製透明度。一般的Android半透明問題
有沒有解決辦法,我可以如何處理這個問題?
用於將半透明矩形繪製到畫布的示例源代碼。矩形也很暗,但它應該很亮。
Bitmap bmp = Bitmap.createBitmap(200, 200, Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
Paint rPaint = new Paint();
rPaint.setColor(Color.parseColor("#F7E836"));
rPaint.setAlpha(127);
rPaint.setStyle(Paint.Style.FILL);
canvas.drawRect(0, 0, 100, 100, rPaint);
的圖片,是指呈現與下列庫SVG圖形: http://code.google.com/p/svg-android/
我想我找到的bug。問題是SurfaceView。它的背景是黑色的。當我使用上面的代碼並將其顯示在ImageView上並且ImageView後面的UI元素的背景顏色爲黑色時,會發生同樣的半透明錯誤。 SurfaceView的背景顏色始終爲黑色。如果我使用setBackgroundColor將其更改爲白色,則SurfaceView將變爲白色,但白色背景將在我用OpenGL繪製的所有其他圖像上繪製。我認爲這些必須切換。首先應該繪製背景顏色,而不是OpenGL的東西。
圖像是使用上面鏈接的庫呈現的SVG圖形。背景從未改變。它保持白色。 –
只是爲了理解原因:問題在於,SVG是用「硬邊緣」繪製的。通常算法會在edgecolor和背景顏色之間找到一個顏色,但在這個例子中沒有背景顏色,因爲svg是單獨渲染的。結果將使用任何顏色。是對的嗎? –
你是如何渲染SVG的?你是填充ImageViews還是將它們作爲圖片抓取並繪製到Canvas? – Mark