Theo số original question, Kết quả cuối cùng là một hình tròn png
tròn trong một ImageView
với bóng thả tự nhiên.Làm cách nào để ngăn drawBitmap của Android chỉ vẽ hình ảnh đen?
Tôi có bóng làm việc, nhưng khi nó vẽ, nó làm cho toàn bộ hình ảnh màu đen.
Làm thế nào tôi có thể ngăn chặn các hình ảnh ban đầu (chắc chắn không phải màu đen) không bị đen khi thêm cái bóng?
BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
Canvas c = new Canvas(shadowImage);
c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null);
imageView.setImageBitmap(shadowImage);
UPDATE:
tôi thực hiện đề nghị của Josh về việc sao chép giao cho không gian màu đúng và bây giờ nó hoạt động tuyệt vời! Đối với người tìm kiếm trong tương lai, mã này tạo ra bóng đổ trên chế độ xem hình ảnh. Bạn có thể chơi xung quanh với x và y, cũng như hằng số OUTER để có được hiệu ứng mong muốn.
BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
Bitmap shadowImage32 = shadowImage.copy(Bitmap.Config.ARGB_8888, true);
Canvas c = new Canvas(shadowImage32);
c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null);
imageView.setImageBitmap(shadowImage32);
Tuyệt vời! Tôi mừng vì tất cả nỗ lực đó đã được đền đáp. – Josh
Tôi phải làm gì để thay đổi màu của bóng? – Frame91