Stati c class
Вы получаете ошибку:
Modifier 'static' not allowed here
И это правда. Только вложенный класс может быть c - значит класс внутри другого класса.
Где его использовать?
Вложенный класс stati c может быть создан без создания экземпляра его внешнего класса.
Абстрактный класс
Java Абстрактный класс используется для предоставления общей реализации метода для всех подклассов или для реализации реализации по умолчанию. Но вы не можете создать экземпляр этого класса.
Fix - CutOffLogo
class
1) Нет необходимости вызывать конструктор. Вы можете удалить этот вызов.
2) В последней версии Glide вам также понадобится метод updateDiskCacheKey()
.
Итак, ваш класс может выглядеть так же. В Kotlin:
class CutOffLogo : BitmapTransformation() {
override fun transform(
pool: BitmapPool,
toTransform: Bitmap,
outWidth: Int,
outHeight: Int
): Bitmap =
Bitmap.createBitmap(
toTransform,
10,
10,
toTransform.width,
toTransform.height - 20
)
override fun updateDiskCacheKey(messageDigest: MessageDigest) {}
}
Или в Java:
public class CutOffLogo extends BitmapTransformation {
@Override
protected Bitmap transform(
@NotNull BitmapPool pool,
@NotNull Bitmap toTransform,
int outWidth,
int outHeight
) {
return Bitmap.createBitmap(
toTransform,
10,
10,
toTransform.getWidth(),
toTransform.getHeight() - 20);
}
@Override
public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
}
}
Исправить - вызов Glide
Когда вы используете Java, вы должны использовать:
.transform(new CutOffLogo(context))
, но в Kotlin:
.transform(CutOffLogo(context))