recherche

Maison  >  Questions et réponses  >  le corps du texte

android - 如何给Imageview 设置水波纹效果?

btn_ripple_mask.xml

<?xml version="1.0" encoding="utf-8"?>
<ripple
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:color="@android:color/darker_gray"><!--点击之后的颜色 必须要-->
  <item
    android:id="@android:id/mask"
    android:drawable="@android:color/white"/>
</ripple>

设置 android:foreground="@drawable/btn_ripple_mask"android:background="@drawable/btn_ripple_mask",都不行

迷茫迷茫2772 Il y a quelques jours750

répondre à tous(3)je répondrai

  • 高洛峰

    高洛峰2017-04-18 09:05:44

    @erehmi Si l'image est au format jpg, il semble inutile de définir l'arrière-plan.

    <ImageView Android:layout_width="300dp" Android : layout_height="200dp" Android : layout_marginTop="10dp" Android : cliquable =" true » android:foreground="?android:attr/selectableItemBackground" app:srcCompat="@mipmap/ic_launcher"/>

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:05:44

    Matériel pour l'article et le boutonRipper Drawable :

    <style name="Theme.Material">
        ...
        <item name="selectableItemBackground">@drawable/item_background_material</item>
        <item name="selectableItemBackgroundBorderless">@drawable/item_background_borderless_material</item>
        <item name="borderlessButtonStyle">@style/Widget.Material.Button.Borderless</item>
    

    以下为item_background_material.xml :

    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?attr/colorControlHighlight">
        <élément android:id="@id/mask">
            <couleur android:color="@color/white" />
        </article>
    </ondulation>
    

    以下为item_background_borderless_material.xml :

    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?attr/colorControlHighlight" />
    

    Il s'agit de Widget.Material.Button.Borderless et de xml :

    <!-- Bouton d'encre sans bordure -->
    <style name="Widget.Material.Button.Borderless">
        <item name="background">@drawable/btn_borderless_material</item>
        <item name="stateListAnimator">@null</item>
    </style>
    
    <!-- btn_borderless_material.xml -->
    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
            android:color="?attr/colorControlHighlight">
        <élément android:id="@id/mask"
              android:drawable="@drawable/btn_default_mtrl_shape" />
    </ondulation>
    

    引用如下 :

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        ...
        android:background="?android:attr/selectableItemBackground">
    

    ImageView :

    <ImageView xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="wrap_content" Android : cliquable =" true » android:background="?android:attr/selectableItemBackground" app:srcCompat="@mipmap/ic_launcher" />

    注意 : 一定要设置 android:clickable="true" 或者 通过代码设置 setOnClickListener(...) .

    你要用这些个酷炫的东西是有代价的, Android 5.0 (API niveau 21),不支持的.

    répondre
    0
  • 黄舟

    黄舟2017-04-18 09:05:44

    Vous pouvez écrire une vue personnalisée qui hérite d'ImageView. Ensuite, vous pouvez démarrer un animateur dans onTouchEvent et dessiner un cercle avec un rayon augmentant progressivement. Faites-le vous-même et ayez suffisamment de nourriture et de vêtements. Un autre avantage d’écrire de cette façon est qu’il n’y a pas de limite de version et qu’elle peut être utilisée si elle est inférieure à 5.0.

    répondre
    0
  • Annulerrépondre