android - 在我的代码中向微调器添加约束
问题描述
我的应用程序中有一个代码,当您单击 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);
解决方案
为了使您的微调器在不同的屏幕尺寸上具有一致的尺寸/外观,您必须使用 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;
}
祝你好运 :)
推荐阅读
- python - 在 Simpy 中,如何同步两个进程以启动第三个进程?
- python - 为什么我的导入在 pycharm 中有效,但在命令行中无效?
- python - 当用户将鼠标光标放在链接上时如何在文本小部件中显示手形光标
- html - 数据 URI 中嵌入的 SVG 的值是什么?要使用的标签是什么?
- javascript - 如何配置卡片,让所有卡片的宽度相同,不管电影的标题在 React Native 中有多红?
- flutter - Flutter 模块可以充当插件/包吗?
- python - 在 python 中使用交互项进行多重线性回归
- reactjs - 路由器中的反应开关正在渲染所有匹配的路由元素
- python-3.x - 如何检查列表中的递增元素
- bash - 在 bash 中使用 md5sum 时重定向标准输出时出现意外行为