ImageViewのselector効果

3461 ワード

普段の開発ではButtonのようにselectorを加えてpressedやnormalの効果を示すことでユーザー体験に大きな色を添えることができますが、ImageViewを「一つの「Button」として使用していると、selectorを直接設定しても機能しないことがわかります.もちろん、このときのアプリケーションは暗くなります.私たちはこのような状況を解決する方法を見つけるしかありません.まずselectorファイルを定義します.
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <corners android:radius="5dp" />
            <solid android:color="#50000000"/>
        </shape>
    </item>

    <item >
        <shape android:shape="rectangle">
            <corners android:radius="5dp" />
            <solid android:color="#00000000"/>
        </shape>
    </item>

</selector>

ステップ2では、ImageViewのsrcにselectorを設定します.
<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:contentDescription="@null"
        android:scaleType="centerCrop"
        android:src="@drawable/share_image_selector" />

そして私たちのImageViewに表示される画像リソースは
mImageView.setBackgroundResource(R.drawable.icon);

つまり、imageviewにbackgroundResourceを設定し、srcに設定したselectorを設定します.視覚的に私たちのselectorはImageViewの上に表示されます.もちろん、ImageViewをクリックするとselectorがトリガーされ、このとき押す効果があります.
だから、良いアプリは体験的に丁寧に使うようにしなければならないので、どのAndroidか忘れたブログで見たので、コードをチェックしたときにこの効果記録を見つけたので、そのAndroidに感謝します.