Чтобы установить радиус границы кнопки изображения в Android, вы можете использовать различные методы. Вот несколько подходов:
-
Метод 1. Использование атрибутов XML в файле макета:
В файле макета XML добавьте следующие атрибуты к элементу ImageButton:<ImageButton ... android:background="@drawable/button_background" android:scaleType="fitCenter" android:adjustViewBounds="true" />Создайте файл с именем
button_background.xmlв каталогеres/drawableи добавьте следующий код:<shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="20dp" /> </shape>Отрегулируйте значение
radius, чтобы получить желаемый радиус границы. -
Метод 2. Программное использование в Java/Kotlin:
В коде Java/Kotlin найдите ссылку на ImageButton и установите возможность рисования фона с закругленными углами:ImageButton imageButton = findViewById(R.id.imageButton); GradientDrawable drawable = new GradientDrawable(); drawable.setShape(GradientDrawable.RECTANGLE); drawable.setCornerRadius(20); imageButton.setBackground(drawable); -
Метод 3. Использование пользовательского подкласса ImageButton:
Создайте собственный подкласс ImageButton и переопределите методonDrawдля применения закругленных углов:public class RoundedImageButton extends ImageButton { public RoundedImageButton(Context context) { super(context); } public RoundedImageButton(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { float radius = 20; Path clipPath = new Path(); RectF rect = new RectF(0, 0, this.getWidth(), this.getHeight()); clipPath.addRoundRect(rect, radius, radius, Path.Direction.CW); canvas.clipPath(clipPath); super.onDraw(canvas); } }Затем используйте класс
RoundedImageButtonв файле макета XML вместо стандартногоImageButton.