SetWidth (int pixels) usa pixel independente de dispositivo ou pixel físico como unidade? Por exemplo, setWidth (100) define a largura de uma visualização como 100 inclinações ou 100 pxs?
Obrigado.
SetWidth (int pixels) usa pixel independente de dispositivo ou pixel físico como unidade? Por exemplo, setWidth (100) define a largura de uma visualização como 100 inclinações ou 100 pxs?
Obrigado.
Ele usa pixels, mas tenho certeza de que você está se perguntando como usar mergulhos. A resposta está em TypedValue.applyDimension()
. Aqui está um exemplo de como converter quedas em px no código:
// Converts 14 dip into its equivalent px
Resources r = getResources();
int px = Math.round(TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 14,r.getDisplayMetrics()));
A maneira correta de obter um número constante de DIPs no código é criar um arquivo XML de recursos contendo valores dp um pouco como:
Em seguida, consulte o recurso em seu código da seguinte maneira:
O float que você retornou será dimensionado de acordo com a densidade de pixels do dispositivo e, portanto, você não precisa ficar replicando um método de conversão em todo o seu aplicativo.
fonte
Método setWidth (100), defina 100 px como largura (não em dp). Portanto, você pode enfrentar problemas de largura em diferentes telefones Android. Portanto, use a medição em dp em vez de pixels. Use o código abaixo para obter a medição em dp da largura da amostra = 300px e altura = 400px.
fonte
Fonte (@Romain Guy)
fonte
Pixels é claro, o método pede pixels como parâmetro.
fonte
Com base nas respostas acima que funcionam bem para mim, eu gerei alguns métodos auxiliares , basta adicioná-los em seus utils para usá-los em todo o projeto.
fonte