我的应用程序中有一个代码,当您单击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);
答案 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;
}
祝你好运:)