Définir l'effet d'entraînement sur la vue d'image
Le suivant d'Affichage de l'Image:
<ImageView
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"/>
Ondulation fonctionne très bien si je n'ai pas mis une image à l'affichage de l'image. Mais une fois que j'ai mis une image bitmap comme ça, l'effet d'entraînement est parti:
ImageView iv=((ImageView)rootView.findViewById(R.id.header));
iv.setImageBitmap(myBitmap);
C'est mon ripple.xml:
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item android:id="@android:id/mask">
<shape android:shape="oval">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
Je suppose que l'image se cache l'effet d'entraînement, comment puis-je le rendre visible? Déjà essayé:
- Changer android:arrière-plan pour android:premier plan, qui n'a pas fonctionné.
- La configuration d'un autre transparent ImageView sur le dessus de celui-ci, mais depuis qu'il a été transparent ondulation n'était pas indiqué.
Des idées? J'ai vu Sucette Contacts.
source d'informationauteur Jjang
Vous devez vous connecter pour publier un commentaire.
J'ai une image de la galerie (construit avec un
RecyclerView
et unGridLayoutManager
). L'image est définie à l'aide de Picasso. Pour ajouter une ondulation sur l'image j'ai enveloppé leImageView
avec unFrameLayout
. La disposition des éléments est:Note le
android:foreground
. Ce n'est pas le même queandroid:background
. J'ai essayé sansandroid:clickable="true"
etandroid:focusable="true"
et il a également œuvresmais il ne fait pas de mal.Puis ajouter un
ripple.xml
drawable dansres/drawable
:Noter que cette montre une semi-transparent de couleur sur le dessus de l'image lorsque l'élément est sélectionné (pour les appareils avec une version antérieure à la version Android 5.0). Vous pouvez le supprimer si vous ne souhaitez pas.
Puis ajouter le
ripple.xml
dessinés avec ondulation dansres/drawable-v21
:Vous pouvez utiliser la valeur par défaut effet d'entraînement à la place de la coutume
ripple.xml
mais c'est vraiment difficile à voir sur une image parce que c'est gris:Vous pouvez la réaliser,enveloppant le drawable dans un RippleDrawable.
;
Pour les paresseux comme moi:
Et de personnaliser l'ondulation de la couleur dans votre style.
dans values/styles.xml
Puis, dans votre fragment avant de l'inflation dans onCreateView():
Avec un effet circulaire essayez ceci :