View.setPadding принимает только в px, есть ли все-таки setPadding в dp?

Android View.setPadding(int left, int top, int right, int bottom) принимает значения только в px, но я хочу установить дополнение в dp. Есть ли способ обойти это?

Solutions Collecting From Web of "View.setPadding принимает только в px, есть ли все-таки setPadding в dp?"

Прямо для кодирования

  int padding_in_dp = 6; // 6 dps final float scale = getResources().getDisplayMetrics().density; int padding_in_px = (int) (padding_in_dp * scale + 0.5f); 

Если вы определяете измерение (в dp или что-то еще) в XML-файле (что лучше в любом случае, по крайней мере в большинстве случаев), вы можете получить его значение в пикселях, используя этот код:

 context.getResources().getDimensionPixelSize(R.dimen.your_dimension_name) 

Вы можете вычислить пиксели для определенного значения DPI: http://forum.xda-developers.com/showpost.php?p=6284958&postcount=31

У меня та же проблема. Единственное решение, которое я нашел (это вам действительно не поможет :)), это установить его в файл Xml.

Если вы можете получить плотность из кода, вы можете использовать преобразование: «Преобразование dip-единиц в пиксели экрана просто: пиксели = провалы * (плотность / 160)». (От http://developer.android.com/guide/practices/screens_support.html )

Изменить: вы можете получить плотность экрана: http://developer.android.com/reference/android/util/DisplayMetrics.html#densityDpi