Android工具栏自定义布局可点击图标与选择器动画背景

时间:2016-06-29 11:20:58

标签: android animation button toolbar

我试图将clicked效果提供给放置在工具栏内的自定义布局中的imageview。所以我这样实现了它:

这包含在工具栏中:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal">

<LinearLayout
        android:id="@+id/img_tool_back"
        style="@style/SelectorLayout"
        >
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_arrow_back_grey_600_24dp"/>
    </LinearLayout>
.
. //Other action buttons
.
</Linearlayout>

选择器布局样式有:

<style name="SelectorLayout">
    <item name="android:layout_width">?attr/actionBarSize</item>
    <item name="android:layout_height">?attr/actionBarSize</item>
    <item name="android:gravity">center</item>
    <item name="android:background">@drawable/selector_action</item>
</style>

和动画操作选择器是:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_shortAnimTime">
<item android:drawable="@color/colorGray" android:state_selected="true"/>
<item android:drawable="@color/colorGray" android:state_pressed="true"/>
<item android:drawable="@color/colorGray" android:state_focused="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>

我想知道使用一个单一的imageview是否可以产生相同的效果?而不是在线性布局中使用imageview?

1 个答案:

答案 0 :(得分:1)

很明显,您可以使用图像和不同的背景定义不同的drawable,例如:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <size
                android:width="24dp"
                android:height="24dp" />
            <solid android:color="@color/colorGrey" />
        </shape>
    </item>

    <item>
        <bitmap android:src="@android:drawable/ic_arrow_back_grey_600_24dp" />
    </item>
</layer-list>

然后在selector_action.xml中应用此功能。 最后,使用ImageButtonandroid:background="@drawable/selector_action"代替ImageView

希望它有所帮助。