在relativeLayout中使用dp的layoutparams
我正在创建一个应用程序,我希望能够动态地使用其边距移动视图。 我试过用这个:
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)cover.getLayoutParams(); params.leftMargin= 470; params.topMargin= 20; cover.setLayoutParams(params); (cover is an ImageView)
这段代码的问题在于它使用px而不是dp。 我也尝试使用DisplayMetrics将我的px值转换为dp但失败了。 你能帮助我吗 ?
您需要根据dpi设置保证金 –
DisplayMetrics displayMetrics = new DisplayMetrics(); WindowManager windowManager = (WindowManager) MyActivity.this.getSystemService(Context.WINDOW_SERVICE); windowManager.getDefaultDisplay().getMetrics(displayMetrics);
现在你可以设置保证金为 –
params.leftMargin = Math.round(470 * displayMetrics.density);