Java 是否有办法将ImageButton设置为始终为父项的1/4';s屏幕高度和父屏幕宽度的1/3?

Java 是否有办法将ImageButton设置为始终为父项的1/4';s屏幕高度和父屏幕宽度的1/3?,java,android,android-layout,imageview,imagebutton,Java,Android,Android Layout,Imageview,Imagebutton,我试图在我的应用程序底部有3个ImageButtons(屏幕高度的1/4和屏幕宽度的1/3),我希望ImageButtons能够根据设备调整大小,而无需硬编码大小。 我试着将三个ImageButton放在一个线性布局中,并对所有三个使用Layou weight=1,但图像实际上并没有缩小,它只是裁剪了图像的一部分以适应所有三个ImageButton。 非常感谢 是的,您可以首先找到屏幕宽度和高度,如下所示- int width = getApplicationContext().getR

我试图在我的应用程序底部有3个ImageButtons(屏幕高度的1/4和屏幕宽度的1/3),我希望ImageButtons能够根据设备调整大小,而无需硬编码大小。 我试着将三个ImageButton放在一个线性布局中,并对所有三个使用Layou weight=1,但图像实际上并没有缩小,它只是裁剪了图像的一部分以适应所有三个ImageButton。
非常感谢

是的,您可以首先找到屏幕宽度和高度,如下所示-

    int width = getApplicationContext().getResources().getDisplayMetrics().widthPixels;
 int height = getApplicationContext().getResources().getDisplayMetrics().heightPixels; 
现在,使用以下命令转换dp中的像素

然后将按钮高度和宽度动态设置为-

 ViewGroup.LayoutParams params = myButton.getLayoutParams();
//Button new width
params.width = 400;

myButton.setLayoutParams(params);
试试这个

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:orientation="vertical" >

<LinearLayout
    android:id="@+id/RLMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#CCFFFFFF"
    android:orientation="vertical"
    android:weightSum="4" >

    <LinearLayout
        android:id="@+id/LL1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:orientation="horizontal" >

        <!-- //...Your Other Layout Views here -->

    </LinearLayout>

    <LinearLayout
        android:id="@+id/LL2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        android:weightSum="9" >

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_weight="1"
            android:src="#FF0000" />

        <ImageButton
            android:id="@+id/imageButton2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_weight="1"
            android:src="#FF0000" />

        <ImageButton
            android:id="@+id/imageButton3"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_weight="1"
            android:src="#FF0000" />
    </LinearLayout>
</LinearLayout>


请发布您的代码!!!回答@Jay xu会有帮助的谢谢!我尝试了这个,但活动会意外停止…我在mainActivity的onCreate()方法上的setContentView之前执行了这些操作…谢谢你!我应该先用不同的线性布局分隔不同的区域,然后在其中添加项目来设计布局。您只需根据需要修改线性布局的权重总和和权重。