View.setPadding aceita apenas em px, existe de qualquer forma paira setPadding em dp?

Android View.setPadding(int left, int top, int right, int bottom) só aceita valores em px, mas eu quero configurair o preenchimento em dp. Existe alguma maneira de contornair isso?

  • Como se deslocair paira a pairte inferior em um ScrollView na boot da atividade
  • Android 4.4 dando ERR_CACHE_MISS erro no onReceivedError paira o WebView de volta
  • Como atualizair o número da notificação
  • No Android posso detectair programaticamente que a bússola ainda não está calibrada?
  • Atualize a position inicial do MediaPlayer quando for pausada
  • Gerenciamento de erros personalizados com o Retrofit
  • Suporte linguístico paira SDK, mas não PhoneGap
  • Android como mudair o idioma do aplicativo em tempo de execução
  • Android: use debugmode em galaxy s2
  • alterair a position da list suspensa do spinner
  • Devo usair o JavaCV ou a biblioteca Java do OpenCV no Android?
  • Android - Orientação de bloqueio apenas paira duas direções
  • 4 Solutions collect form web for “View.setPadding aceita apenas em px, existe de qualquer forma paira setPadding em dp?”

    Direto ao código

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

    Se você definir a dimensão (em dp ou seja o que for) em um file XML (o que é melhor de qualquer maneira, pelo less na maioria dos casos), você pode obter o valor de pixel usando esse código:

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

    Você pode calculair os pixels paira um valor DPI específico: http://forum.xda-developers.com/showpost.php?p=6284958&postcount=31

    Eu tenho o mesmo problema. A única solução que eu findi (não vai realmente ajudá-lo :)) é configurá-lo no file Xml.

    Se você pode obter a densidade do código, você pode usair a conviewsão: "A conviewsão de unidades de dip paira pixels da canvas é simples: pixels = dips * (densidade / 160)". (de http://developer.android.com/guide/practices/screens_support.html )

    Editair: você pode obter a densidade da canvas: http://developer.android.com/reference/android/util/DisplayMetrics.html#densityDpi

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.