我的目标是创建一个半椭圆形渐变图像。我创建了一个渐变Drawable,然后将其转换为位图并切成两半以获得最终形状,显示在图片的右侧。
我怀疑这是否是最佳方式,所以请随意推荐其他方法。
问题是在分割位图后质量很低。您可以看到半渐变的边缘是像素化的。这在分割位图时发生。 我该怎么做才能保持最初的质量?
//create gradient drawable
GradientDrawable gd = new GradientDrawable(orientation,new int[] {firstColor, secondColor});
gd.setCornerRadius(0f);
gd.setShape(GradientDrawable.OVAL);
//convert drawable to bitmap
int width=imageView.getLayoutParams().width;
int height=imageView.getLayoutParams().height;
Bitmap bitmap = Bitmap.createBitmap(width,height, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
//cut bitmap in half
bitmap=Bitmap.createBitmap(bitmap, width/2, 0, width/2, height);
imageView.setImageBitmap(bitmap);
imageView..setScaleType(ScaleType.FIT_XY);