Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓-改变按钮高度它被拉伸_Android_Button_Height - Fatal编程技术网

Android 安卓-改变按钮高度它被拉伸

Android 安卓-改变按钮高度它被拉伸,android,button,height,Android,Button,Height,我有一个带图像的按钮。图像的高度应为设备高度的20%。因此,我以编程方式设置图像的高度。 问题是,如果我这样做,图像就会被拉伸。我将必须缩放的设置放在中心内部,并尝试使用其他元素,如imagebutton或imageview,但我始终遇到相同的问题。 我该怎么办 更新 这是我的xml代码: <LinearLayout android:id="@+id/letterLayout" android:layout_width="wrap_content" android

我有一个带图像的按钮。图像的高度应为设备高度的20%。因此,我以编程方式设置图像的高度。
问题是,如果我这样做,图像就会被拉伸。我将必须缩放的设置放在中心内部,并尝试使用其他元素,如imagebutton或imageview,但我始终遇到相同的问题。
我该怎么办

更新 这是我的xml代码:

 <LinearLayout
    android:id="@+id/letterLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="20dp"
    android:layout_marginBottom="10dp"
    android:scaleType="centerCrop"
    android:gravity="center"
    android:layout_gravity="center"
    android:onClick="onClick">
    <Button
        android:id="@+id/letterButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:fontFamily="sans-serif"
        android:textStyle="bold"
        android:padding="30dp"
        android:textColor="#000000"
        android:background="#00000000"
        android:clickable="false"/>
</LinearLayout>

您是否尝试过使用参数android:scaleType=“centerCrop”?这将裁剪您的图像以进入布局

我尝试了所有可能的缩放类型,但始终是拉伸的。您可以发布布局代码吗?为什么不尝试在XMLI中用“权重”1/5设置高度?我在更新中添加了我的代码。我必须用java设置按钮的高度,因为它取决于设备的高度
        letterLayout.getLayoutParams().height = (int) (hQdr);
        letterTest.getLayoutParams().height = (int) (hQdr);
        //letterTest.getLayoutParams().width = (int) (wQdr);