Мне нужно создать собственный объект Drawable.Я хочу, чтобы этот пользовательский объект рисования отображал градиент, который будет применяться, например, в качестве фона представления.Для этого я переопределяю метод draw класса Drawable.Код моего класса CustomDrawable выглядит следующим образом:
public void draw(Canvas canvas) {
Rect clipBounds = canvas.getClipBounds();
Paint rectanglePaint = new Paint();
LinearGradient lg = new LinearGradient(0,0,0,clipBounds.height(),0xff838383,0xff242424,Shader.TileMode.CLAMP);
rectanglePaint.setShader(lg);
RectF rectangle = new RectF(0f,0.0f, clipBounds.width(), clipBounds.height()); //in pixels
canvas.drawRoundRect(rectangle, 0f, 0f, rectanglePaint);
}
Проблема возникает, когда я назначаю этот объект рисования в качестве фона моего окна в методе onCreate.Градиент появляется без проблем, но кажется, что он был масштабирован и выглядит ужасно.
Странно то, что я создаю эквивалентный объект рисования исключительно в XML и назначаю его непосредственно в качестве фона в макете XML IУ меня нет этого ужасного эффекта масштаба (я просто добавляю следующую строку "window.setFormat (PixelFormat.RGBA_8888);")
Почему у меня не получается такой же результат, когда я делаю это программно ??1008 *
Каждая идея будет по-настоящему оценена!Спасибо за чтение;)