Implémenter la représentation ondulatoire dans les images sur Android
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.
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