3
A
回答
9
您可以將'羽毛效果'視爲漸變梯度,其中的alpha從100%降至0%。
Android爲此提供了RadialGradient類。您需要使用構造函數,您可以在其中指定radient的控制點,因爲您希望漸變在邊緣附近開始,而不是在中間。
Android的RadialGradient類的一個問題是它只支持完美圓,而不是橢圓。爲了彌補這一點,我們將繪製一個完美的圓圈並在之後進行縮放。
示例代碼:
private Bitmap makeFeatheredOval(int width, int height) {
// Determine largest dimension, use for rectangle.
int size = Math.max(width, height);
RadialGradient gradient = new RadialGradient(size/2, size/2, size/2,
new int[] {0xFFFFFFFF, 0xFFFFFFFF, 0x00FFFFFF},
new float[] {0.0f, 0.8f, 1.0f},
android.graphics.Shader.TileMode.CLAMP);
Paint paint = new Paint();
paint.setShader(gradient);
Bitmap bitmap = Bitmap.createBitmap(size, size, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawCircle(size/2, size/2, size/2, paint);
// Scale the bitmap, creating an oval
bitmap = Bitmap.createScaledBitmap(bitmap, width, height, true);
return bitmap;
}
示例圖像(它是橢圓形的 「月亮」,在左上角):
爲大家加分誰承認,背景圖像。
相關問題
- 1. Kineticjs路徑羽化效果
- 2. 如何在Android上實現物理效果,透視效果
- 3. android VIewpager如何實現約束效果
- 4. 我如何在cocos2d中實現效果?
- 5. 如何在Android中實現效果如下所述
- 6. 如何在Android中實現Spotify App效果(圖片淡化和滾動模糊)?
- 7. 如何在android中實現圖像視圖的縮放效果?
- 8. 如何在android中實現這種摺疊效果?
- 9. 如何在Android中使用縮放來實現視差效果?
- 10. 如何在android中實現低音效果?
- 11. 如何在Android中實現這個圖像堆棧效果?
- 12. 如何在android中實現以下顯示效果textview
- 13. 如何在Android中實現圖像失真效果
- 14. 在ImageMagick中分層非羽化圖像的羽化圖像以隱藏羽化
- 15. 如何在iPhone上實現slurp效果?
- 16. 如何在Android上實現邊緣深度效果
- 17. 如何在andengine上實現「慢動作」效果android
- 18. 如何在android視圖的邊緣實現陰影效果?
- 19. 如何在Android和iPhone上實現相同的投擲效果
- 20. 如何在Android上實現音圈效果?
- 21. 哈希碼對hashSet的實現效果如何變化
- 22. 如何使用Core Graphics實現淡化效果?
- 23. THREE.js - 如何實現這種效果?
- 24. iOS/GLES2:如何實現發光效果
- 25. 如何實現舊的電影效果?
- 26. 如何實現攝像頭效果?
- 27. 這種彈性效果如何實現?
- 28. 如何實現這種模糊效果?
- 29. 如何實現子菜單效果?
- 30. 如何實現閃光/頻閃效果?
[Lifeforce](http://www.pouet.net/prod.php?which=31571) – Jens 2012-03-31 11:21:19
非常感謝您的幫助,但我需要圍繞已創建的位圖創建羽毛(A裁剪位圖)。這是我使用:位圖croppedImage = Bitmap.createBitmap(寬度,高度,Bitmap.Config.ARGB_8888);畫布畫布=新帆布(裁剪圖像); Rect dstRect = new Rect(0,0,width,height); canvas.drawBitmap(initialBitmap,r,dstRect,null); finnaly for cropping:Path p = mCrop.getCropPath(); Canvas c = new Canvas(croppedImage); c.clipPath(p,Region.Op.DIFFERENCE); c.drawColor(0x00000000,PorterDuff.Mode.CLEAR); – cataHHH 2012-03-31 15:01:28
對不起,我不知道它是多麼清晰......我試圖爲CroppedImage添加各種Paint效果,但我從未注意到它的任何邊緣。 – cataHHH 2012-03-31 15:02:53