A função Android View.setPadding(int left, int top, int right, int bottom)
só aceita valores em px, mas quero definir o preenchimento em dp. Existe alguma maneira de contornar isso?
android
android-layout
Sharj
fonte
fonte
getResources()
seja uma função herdada por uma atividade, mas estou tentando usar essas linhas em um adaptador de visualização de lista personalizado. Existe alguma maneira de fazer isso se não puder ligargetResources()
?Se você definir a dimensão (em dp ou qualquer outro) em um arquivo XML (o que é melhor de qualquer maneira, pelo menos na maioria dos casos), você pode obter o valor de pixel usando este código:
fonte
Existe uma maneira melhor de converter valor em dp programaticamente:
Em seguida, aplique
dpValue
ao seu método, por exemplo:setPadding(dpValue,dpValue,dpValue,dpValue);
fonte
Você pode calcular os pixels para um valor de DPI específico: http://forum.xda-developers.com/showpost.php?p=6284958&postcount=31
fonte
Tenho o mesmo problema. A única solução que encontrei (realmente não vai te ajudar :)) é configurá-lo no arquivo Xml.
Se você pode obter a densidade do código, pode usar a conversão: "A conversão de unidades de mergulho em pixels da tela é simples: pixels = quedas * (densidade / 160)." (de http://developer.android.com/guide/practices/screens_support.html )
Editar: você pode obter a densidade da tela: http://developer.android.com/reference/android/util/DisplayMetrics.html#densityDpi
fonte