cari

Rumah  >  Soal Jawab  >  teks badan

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 hari yang lalu752

membalas semua(3)saya akan balas

  • 高洛峰

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

    @erehmi Jika gambar dalam format jpg, nampaknya tidak berguna untuk menetapkan latar belakang boleh

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

    balas
    0
  • 大家讲道理

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

    以下为官方Meterial样式下的列表Item和Button预设的Ripper Drawable:

    <style name="Theme.Material">
        ...
        <item name="selectableItemBackground">@drawable/item_background_material</item>
        <nama item="selectableItemBackgroundBorderless">@drawable/item_background_borderless_material</item>
        <nama item="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">
        <item android:id="@id/mask">
            <warna android:color="@color/white" />
        </item>
    </riak>
    

    以下为item_background_borderless_material.xml:

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

    以下为Widget.Material.Button.Borderless对应的设置和xml:

    <!-- Butang dakwat tanpa sempadan -->
    <style name="Widget.Material.Button.Borderless">
        <nama item="latar belakang">@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">
        <item android:id="@id/mask"
              android:drawable="@drawable/btn_default_mtrl_shape" />
    </riak>
    

    引用如下:

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

    Paparan Imej设置如下:

    <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:clickable="true"
        android:background="?android:attr/selectableItemBackground"
        app:srcCompat="@mipmap/ic_launcher" />
    

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

    你要用这些个酷炫的东西是有代价的, 就是你的设备必须是Android 5.0 (API tahap 21),低于这个版本的机器是不支持的.

    balas
    0
  • 黄舟

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

    Anda boleh menulis Paparan tersuai yang diwarisi daripada ImageView. Kemudian anda boleh memulakan Animator dalam onTouchEvent dan melukis bulatan dengan jejari yang semakin meningkat. Lakukan sendiri dan cukupkan makanan dan pakaian. Satu lagi kelebihan menulis dengan cara ini ialah tiada sekatan versi, dan ia boleh digunakan jika lebih rendah daripada 5.0.

    balas
    0
  • Batalbalas