studio - textview padding programmatically android
Agregue relleno a la vista mediante programaciĆ³n (8)
Escribir el código siguiente para configurar el relleno, puede ser útil.
TextView ApplyPaddingTextView = (TextView)findViewById(R.id.textView1);
final LayoutParams layoutparams = (RelativeLayout.LayoutParams) ApplyPaddingTextView.getLayoutParams();
layoutparams.setPadding(50,50,50,50);
ApplyPaddingTextView.setLayoutParams(layoutparams);
Utilice LinearLayout.LayoutParams o RelativeLayout.LayoutParams de acuerdo con el diseño principal de la vista secundaria
Estoy desarrollando la aplicación Android v2.2.
Tengo un fragmento
En la devolución de llamada onCreateView(...)
de mi clase de fragmento, inflando un diseño al fragmento como a continuación:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.login, null);
return view;
}
El archivo de diseño inflado anterior es (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>
Me gustaría establecer un paddingTop
en el elemento <LinearLayout>
, y quiero hacerlo en el código Java en lugar de hacerlo en xml.
¿Cómo establecer paddingTop
en <LinearLayout>
en mi código de clase Java de fragmento?
Mientras se acumula programáticamente, conviértanse a valores relacionados con la densidad convirtiendo pixel a Dp.
Para responder a tu segunda pregunta:
view.setPadding(0,padding,0,0);
como sugirieron SpK y Jave, establecerán el relleno en píxeles. Puede configurarlo en dp calculando el valor dp de la siguiente manera:
int paddingDp = 25;
float density = context.getResources().getDisplayMetrics().density
int paddingPixel = (int)(paddingDp * density);
view.setPadding(0,paddingPixel,0,0);
¡Espero que ayude!
Puede configurar el relleno a su vista de forma gráfica a través del código a continuación -
view.setPadding(0,1,20,3);
Y, también hay diferentes tipos de relleno disponibles -
Estos enlaces se referirán al sitio de Desarrolladores de Android. Espero que esto te ayude mucho.
Si almacena el relleno en los archivos de recursos, simplemente puede llamar
int padding = getResources().getDimensionPixelOffset(R.dimen.padding);
Hace la conversión por ti.
Usar TypedValue
es una manera mucho más limpia de convertir a píxeles en comparación con el cálculo manual:
float paddingDp = 10f;
// Convert to pixels
int paddingPx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, paddingDp, context.getResources().getDisplayMetrics());
view.setPadding(paddingPx, paddingPx, paddingPx, paddingPx);
Básicamente, TypedValue.applyDimension
convierte el relleno deseado en píxeles de forma adecuada según las propiedades de visualización del dispositivo actual.
Para obtener más información, consulte: TypedValue.applyDimension Docs .
use el siguiente método para configurar el relleno dinámicamente
setPadding(int left, int top, int right, int bottom)
Ejemplo:
view.setPadding(2,2,2,2);
view.setPadding(0,padding,0,0);
Esto establecerá el relleno superior en padding
-pixels.
Si desea establecerlo en dp
en su lugar, puede hacer una conversion :
float scale = getResources().getDisplayMetrics().density;
int dpAsPixels = (int) (sizeInDp*scale + 0.5f);