所以.您知道当您点击Google+应用中的帖子时,整个视图会变为蓝色.我也希望这样做,但使用ImageView.
我有以下代码片段,将实际图像设置为背景,将选择器设置为主要资源.这看起来不错,但不尊重背景图像的scaleType:
<ImageView
android:id="@+id/painting_image"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@drawable/img"
android:src="@drawable/selector"
android:scaleType="centerCrop" />
Run Code Online (Sandbox Code Playgroud)
顺便说一下,@drawable/selector它只是一个显示透明颜色的选择器state_pressed:
<item android:state_pressed="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#44521400" />
</shape></item>
Run Code Online (Sandbox Code Playgroud)
如何在尊重scaleType的同时完成这项工作?
包裹您ImageView的a FrameLayout,并定义FrameLayout可点击.小心将onClick事件分配给FrameLayout,而不是ImageView,或者效果会中断!另请注意,foreground已设置为选择器,而不是background.
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:foreground="@drawable/imagebutton_selector" >
<ImageView
android:id="@+id/painting_image"
android:layout_width="match_parent"
android:layout_height="250dp"
android:scaleType="centerCrop" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3449 次 |
| 最近记录: |