2013-09-14 3 views
2

Я делаю приложение, и я хочу, чтобы вы могли динамически перемещать представление, используя его поля. Я попытался с помощью этого:Использование layoutparams в relativeLayout с dp

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)cover.getLayoutParams(); 
params.leftMargin= 470; 
params.topMargin= 20; 
cover.setLayoutParams(params); (cover is an ImageView) 

Проблема с этим кодом его, что он использует точек вместо дп. Я также попытался использовать DisplayMetrics для преобразования значений px в dp, но не смог. Вы можете мне помочь ?

+0

Что такое кнопка крышки? – Metalhead1247

+0

cover is imageview (написано код) – mremremre1

+0

http://developer.android.com/reference/android/util/TypedValue.html#applyDimension(int, float, android.util.DisplayMetrics) – pskink

ответ

11

Вы должны установить маржу в соответствии с точек на дюйм -

DisplayMetrics displayMetrics = new DisplayMetrics(); 
     WindowManager windowManager = (WindowManager) MyActivity.this.getSystemService(Context.WINDOW_SERVICE); 
     windowManager.getDefaultDisplay().getMetrics(displayMetrics); 

Теперь вы можете установить поля, как -

params.leftMargin = Math.round(470 * displayMetrics.density); 
+0

Отлично. Он отлично работает. tnx :) – mremremre1

+0

Рад помочь. Вы можете отметить этот ответ, как принято. :) –

Смежные вопросы