[JAVA] Implémenter la représentation ondulatoire dans les images sur Android

Chose que tu veux faire

Implémenter la représentation ondulatoire dans les images sur Android

Façon de penser

Entourez le ImageView auquel vous souhaitez appliquer l'expression d'ondulation avec FragmentLayout Spécifiez l'attribut de premier plan pour FragmentLayout afin de pouvoir appuyer sur FragmentLayout lorsque vous appuyez dessus. Spécifiez la plage et la couleur auxquelles l'expression d'ondulation est appliquée avec l'attribut de premier plan L'attribut de premier plan fait référence au xml créé séparément En spécifiant l'attribut de premier plan, FrameLayout devient la couche supérieure, de sorte que l'événement tap sera capté par FragmentLayout.

la mise en oeuvre

XML de l'écran principal de l'application

activity_main.xml


    <FrameLayout
        android:id="@+id/image_view"
        android:layout_width="150dp" //Point 1: Rendre la taille de FragmentLayout et ImageView la même
        android:layout_height="50dp"
        android:padding="0dp" //Point 2: Le remplissage est défini sur 0dp de sorte que la zone d'ondulation et ImageView se chevauchent exactement.
        android:foreground="@drawable/btn_ripple"> //Point 5: Le premier plan fait référence au nom de fichier d'un autre fichier xml qui définit la "zone d'ondulation" et la "couleur au moment de l'ondulation"

        <ImageView
            android:id="@+id/image_view2"
            android:scaleType="fitXY" //Point 3: Le rapport hauteur / largeur est variable afin que la taille de FragmentLayout et ImageView soit la même.
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:layout_margin="0dp" //Point 4: La marge est définie sur 0dp afin que la zone d'ondulation et ImageView se chevauchent exactement.
            android:src="@drawable/long_circle" />
    </FrameLayout>

btn_ripple.xml


//Point 1: Faites du nom de fichier celui spécifié par l'attribut de premier plan ci-dessus.
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/colorRipple2"> //Point 2: Spécifiez la couleur au moment de l'ondulation
    <item
        android:id="@android:id/mask" //Point 3: utilisez toujours "masque" ici. Même si "id"/Même s'il y a un endroit où "masque" est spécifié.
        android:drawable="@drawable/long_circle" /> //Point 4: spécifiez la zone d'ondulation. (Il suffit de se référer à l'image que vous souhaitez faire onduler
</ripple>

Recommended Posts

Implémenter la représentation ondulatoire dans les images sur Android
[Android] Notes sur xml
Personnaliser la vue de liste sur Android
Bibliothèque de transmission en plusieurs parties sur Android
Utiliser la communication série sur Android
Développement d'applications ROS sur Android
[Android] Mettre en œuvre Adblock dans WebView
Effet d'entraînement Android (vue personnalisée)