Estou desenvolvendo o aplicativo Android v2.2.
Eu tenho um fragmento .
No onCreateView(...)
retorno de chamada da minha classe de fragmento, eu inflado um layout para o fragmento como abaixo:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.login, null);
return view;
}
O arquivo de layout inflado acima é (login.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Username" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Username" />
</LinearLayout>
Gostaria de definir um paddingTop
para o <LinearLayout>
elemento acima e quero fazê-lo no código Java em vez de fazê-lo em xml.
Como definir paddingTop
a <LinearLayout>
no meu fragmento de código de classe Java ??
findViewById
e, em seguida, chamásetPadding
-lo.view
já é o LinearLayout, não é necessário encontrá-lo novamente neste caso. Dado que este é um especial embora.Respostas:
view.setPadding(0,padding,0,0);
Isso definirá o preenchimento superior para
padding
-pixels.Se você deseja configurá-lo
dp
, pode fazer uma conversão :fonte
float scale = getResources().getDisplayMetrics().density;
int size = (int) (sizeInPx*scale + 0.5f);
sizeInDp
na verdade, é o número de pixels que você obtém ao convertersizeInPx
dps.Para responder sua segunda pergunta:
como SpK e Jave sugeriram, definirá o preenchimento em pixels. Você pode configurá-lo em dp calculando o valor dp da seguinte maneira:
Espero que ajude!
fonte
Se você armazenar o preenchimento em arquivos de recursos, poderá simplesmente chamar
Faz a conversão para você.
fonte
Usando o Kotlin e a biblioteca android-ktx, você pode simplesmente fazer
Veja os documentos aqui
fonte
Você pode definir o preenchimento para sua visualização de forma programática em todo o código abaixo -
E também existem diferentes tipos de preenchimento disponíveis -
Preenchimento
PaddingBottom
PaddingLeft
PaddingRight
PaddingTop
Esses links farão referência ao site dos desenvolvedores do Android. Espero que isso ajude muito.
fonte
Usar
TypedValue
é uma maneira muito mais limpa de converter em pixels em comparação com o cálculo manual:Essencialmente,
TypedValue.applyDimension
converte o preenchimento desejado em pixels adequadamente, dependendo das propriedades de exibição do dispositivo atual.Para mais informações, consulte: TypedValue.applyDimension Docs .
fonte
use o método abaixo para definir o preenchimento dinamicamente
Exemplo:
fonte
Escreva o código a seguir para definir o preenchimento, isso pode ajudá-lo.
Use
LinearLayout.LayoutParams
ou deRelativeLayout.LayoutParams
acordo com o layout pai da visualização filhofonte
fonte
Enquanto estiver preenchendo programaticamente, converta em valores relacionados à densidade convertendo pixel em Dp.
fonte