Android ImageButton防止背景调整大小

时间:2018-08-25 21:17:53

标签: android android-imagebutton

情况
我的布局中有一堆带有波纹效果的ImageButton。对于API <21,我创建了选择器来替代波纹。

Ripple API <21

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

shape_circle_red

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="10dp"
android:shape="oval">
  <size
    android:width="20dp"
    android:height="20dp" />
  <solid android:color="@color/red" />
</shape>

ImageButton

 <ImageButton
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/ripple_red"
    android:src="@drawable/ic_button1" />

问题
在API> = 21时,正常纹波可以正常工作。但是在API <21上,我的自建波纹效果被拉伸到ImageButton的大小。换句话说,因为我的ImageButton的宽度和高度不相等,所以圆圈显示为椭圆形。

问题
我如何才能防止涟漪延伸到ImageButton的大小

到目前为止我尝试过的事情
 -将背景设置为可绘制对象,而不是通过id
 -我的ImageButton上的android:adjustViewBounds =“ false”  -我的ImageButton上的android:scaleType =“ centerInside”

0 个答案:

没有答案