为了账号安全,请及时绑定邮箱和手机立即绑定

在 Android 上以编程方式设置视图的高度

在 Android 上以编程方式设置视图的高度

守着星空守着你 2022-06-23 10:15:15
如何根据屏幕高度设置视图的高度?<View    android:id="@+id/myRectangleView"    android:layout_width="200dp"    android:layout_height="50dp" //view height    android:background="@drawable/rectangle"/>目前高度设置为 50dp。我需要如下设置视图的高度:View Height     Screen Size 32 dp           ≤ 400 dp50 dp           > 400 dp and ≤ 720 dp90 dp           > 720 dp
查看完整描述

3 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

您可以获取 View 的 LayoutParams 对象,然后设置 Height 和 Width 以动态查看,如下面的代码:


View view = (View)findViewById(R.id. myRectangleView);

LayoutParms layoutParams = view.getLayoutParms();

layoutParms.height = 200;

layoutParms.width  = 300;


查看完整回答
反对 回复 2022-06-23
?
PIPIONE

TA贡献1829条经验 获得超9个赞

我已经在我的身上尝试过这个解决方案。希望它对你没问题。


import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.DisplayMetrics;

import android.view.Display;

import android.view.View;

import android.view.ViewGroup;



public class MainActivity extends AppCompatActivity {


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        View view = (View) findViewById(R.id.myRectangleView);

        ViewGroup.LayoutParams layoutParams = view.getLayoutParams();

        layoutParams.height = 500;


        Display display = getWindowManager().getDefaultDisplay();

        DisplayMetrics outMetrics = new DisplayMetrics();

        display.getMetrics(outMetrics);


        float density = getResources().getDisplayMetrics().density;

        float dpHeight = outMetrics.heightPixels / density;


        if ((int) dpHeight <= 400) {

            layoutParams.height = 32;

        } else if ((int) dpHeight > 400 && dpHeight <= 720) {

            layoutParams.height = 50;

        } else if ((int) dpHeight > 720) {

            layoutParams.height = 90;

        }

    }

}


查看完整回答
反对 回复 2022-06-23
?
慕森王

TA贡献1777条经验 获得超3个赞

你可以使用这个:


public static int getScreenHeightInDP(Context context) {

    DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();


    float screenHeightInDP = displayMetrics.heightPixels / displayMetrics.density;


    return Math.round(screenHeightInDP);

}


查看完整回答
反对 回复 2022-06-23
  • 3 回答
  • 0 关注
  • 192 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信