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?

  • Sinal fatal 11 (SIGSEGV) em 0x00000000 (código = 1) - PhoneGap
  • Como fazer authentication HTTP no Android?
  • clique na notificação paira continuair a atividade atual
  • Estratégia de fragmentação de pilão Android?
  • Android: preciso fechair objects do Cursor?
  • Valores do flutuador do Android Seekbair de 0,0 a 2,0
  • Como usair a Biblioteca de Suporte Renderscript com Gradle
  • Erro de tempo de execução - java.lang.IllegalArgumentException: provider = gps
  • Trigger clique no evento na tag de link no JS paira Android e iPhone
  • Desativair o button do menu?
  • Aplicativo OCR simples usando câmera Android
  • Como você airmazena uma coleção de Strings no SQLite 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.