我正在制作一个发射器,我希望底座看起来像这样:
如您所见,该扩展坞有两个主要功能。
1)高斯模糊
2)圆角
对于圆角,我使用了以下代码:
RoundedBitmapDrawable RBD = RoundedBitmapDrawableFactory.create(getResources(), bmp);
RBD.setCornerRadius(40.0f);
RBD.setAntiAlias(true);
其中bmp是Image的底部(我以编程方式裁剪)
对于高斯模糊,我使用了API
GaussianBlur.with(this).size(80).radius(25).put(croppedDrawable, dock);
其中,croppedDrawable可以绘制图像底部的裁剪位图。
以下是完整代码:
//Cropping image to fit the dimensions of the dock
bmp.setDensity(Bitmap.DENSITY_NONE);
bmp = Bitmap.createBitmap(bmp, 0, (int) dock.getY(), Resources.getSystem().getDisplayMetrics().widthPixels, dock.getHeight());
//Rounded Corners
RoundedBitmapDrawable RBD = RoundedBitmapDrawableFactory.create(getResources(), bmp);
//The radius of corners
RBD.setCornerRadius(40.0f);
//I have no idea why this is used
RBD.setAntiAlias(true);
//Now that the image has roundedCorners, Gaussian blur can be applied
//For this, I have to convert RBD to a drawable. It cannot be cast
//directly, hence, I am first converting it to a bitmap and then to
//a drawable
Bitmap bmp2 = RBD.getBitmap();
Drawable croppedGaussianDrawable = new BitmapDrawable(getResources(), bmp2);
GaussianBlur.with(this).size(80).radius(25).put(croppedGaussianDrawable, dock);
出了点问题,因为我得到的输出是:
只有高斯模糊已应用于底座。 我不知道错误是什么。我尝试过使用其他方法,但它们毫无用处。
有人可以告诉我代码有什么问题吗?我哪里错了?为什么码头图像的角落不圆?