Как изменить модельку «показа касания» на другую?

Для изменения модели показа касания на другую в Android есть несколько вариантов, в зависимости от того, что именно вы хотите изменить.

1. Изменение стиля касания: Вы можете изменить стиль показа касания, такой как цвет и форма, путем определения собственного стиля для элемента управления. Для этого нужно создать файл XML в вашем проекте в папке res -> values, например, touch_feedback.xml. В этом файле вы можете определить нужные параметры стиля, такие как цвет фона или границы при касании. Затем вы можете применить этот стиль к вашему элементу управления, указав его в атрибуте android:background, например:

<Button
    android:id="@+id/my_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/touch_feedback"
    android:text="My Button" />

2. Использование анимации: Если вы хотите изменить анимацию показа касания, то вам понадобится использовать анимации. В Android есть несколько типов анимаций, которые можно применить к элементам управления, включая анимацию при касании. Например, вы можете создать анимацию появления или исчезновения при касании кнопки. Для этого нужно создать файл XML с описанием анимации в папке res -> anim, например, touch_animation.xml, и затем применить эту анимацию к вашему элементу управления через метод startAnimation, например:

Button myButton = findViewById(R.id.my_button);
Animation touchAnimation = AnimationUtils.loadAnimation(this, R.anim.touch_animation);
myButton.startAnimation(touchAnimation);

3. Создание собственного виджета: Если вы хотите полностью изменить модель показа касания, вам может потребоваться создать собственный пользовательский виджет. Создание собственного виджета позволяет вам программно контролировать все аспекты показа касания. Для этого нужно создать класс, наследующийся от класса View или одного из его подклассов, например, Button. В этом классе вы можете переопределить методы onTouchEvent или onDraw, чтобы реализовать собственную логику показа касания. Например:

public class MyCustomButton extends AppCompatButton {
    
    public MyCustomButton(Context context) {
        super(context);
    }
    
    public MyCustomButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // Ваша логика показа касания
        return super.onTouchEvent(event);
    }
    
    @Override
    protected void onDraw(Canvas canvas) {
        // Ваша логика отрисовки показа касания
        super.onDraw(canvas);
    }
}

Затем вы можете использовать этот собственный виджет в вашем макете XML, например:

<com.example.myapp.MyCustomButton
    android:id="@+id/my_custom_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="My Custom Button" />

В зависимости от ваших конкретных требований и желаемых изменений в модели показа касания, один из этих вариантов должен подходить для вас.