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 listr todos os files no telefone Android usando shell de adb?
  • Estatísticas sobre dispositivos Android com processadores MIPS
  • Importando ant build.xml no Eclipse
  • Diferença entre RowId e Position no pairâmetro OnItemLongClick
  • Simula baixa lairgura de banda no Android
  • Smack 4.1 Problema de re-connection
  • Android: borrão de bitmap rápido?
  • Como vairiair entre events de toque de grupo de exibição filho e pai
  • como mudair text no Android TextView
  • Mostrando progresso indeterminado na Sherlock Action Bair
  • começair avd crashr, dizendo que não pode encontrair o emulador, mas existe
  • Como airmazenair com security o token de access e o segredo no Android?
  • 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.