在我的代码中向微调器添加约束

时间:2018-08-09 06:07:04

标签: android constraints spinner

我的应用程序中有一个代码,当您单击FAB时,会出现一个微调框。当我在屏幕尺寸很小的手机上进行测试时,微调器会正确显示。但是当我在更大的手机屏幕上尝试时,微调框似乎缩小了,并且被部分隐藏了。

是否可以在此处向我的代码添加约束,以便微调器的大小将根据屏幕的大小而改变,并且不会被部分切除/隐藏?

代码:

SearchableSpinner spinner = (SearchableSpinner) makeSpinner();
                mLinearLayout.addView(spinner); //Add another spinner


                LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)spinner.getLayoutParams();
                layoutParams.setMargins( 5,  130,  10,  0);
                layoutParams.height = 80;//pixels
                layoutParams.width = 240;//pixels
                spinner.setLayoutParams(layoutParams);

1 个答案:

答案 0 :(得分:0)

要使微调框具有一致的尺寸/在不同的屏幕尺寸上显示,您必须使用DP(密度独立像素)而不是简单像素。

我建议您做的是通过使用以下方法将DP转换为像素,将layout.height / width设置为特定的DP:

public static float convertDpToPixel(float dp, Context context){
    Resources resources = context.getResources();
    DisplayMetrics metrics = resources.getDisplayMetrics();
    float px = dp * ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT);
    return px;
}

祝你好运:)