我在ImageButton上绘制了一个ImageView(50%透明图标),但是当我点击ImageButton时,图标消失(此时会触发一个Activity转换)。这看起来很糟糕......
执行此操作的最佳方法是什么,而不将图标实际放入ImageButton的src-File中?有没有办法将drawables设置为背景或前景?这两个属性究竟是什么?我无法找到有关android:foreground ...
的任何文档BTW:我正在使用新的Lollipop共享元素转换并在nexus 9上进行测试。
<Relative Layout...>
<ImageButton
android:id="@+id/imageView1"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_width="400dp"
android:layout_height="250dp"
android:src="@drawable/call1"
android:foreground="@drawable/phone" <!-- Does this make any sense?-->
android:transitionName="@string/trans_call_pic"
android:onClick="clickCall"
/>
<ImageView
android:id="@+id/imageButton1"
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@drawable/phone"
android:layout_alignBottom="@id/imageView1"
android:alpha="0.5"
android:layout_marginLeft="14dp"
/>
</RelativeLayout
答案 0 :(得分:1)
android:foreground
属性用于前景选择器(添加到FrameLayout)。它不是为了简单地绘制图像。
一种解决方案是将按钮&amp;容器视图中的图像并将过渡放在容器上。这样,两个子视图将被视为一个。
答案 1 :(得分:0)
尝试在视图中添加前景选择器。您可以延长ImageButton
,覆盖onDraw()
,并在调用super.onDraw()
后绘制前景选择器。这将确保前景选择器绘制在整个ImageButton
之上。可以找到更详细的说明here。