我试图将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?
答案 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
中应用此功能。
最后,使用ImageButton
与android:background="@drawable/selector_action"
代替ImageView
。
希望它有所帮助。