Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Alinear la imagen dibujable dentro de una vista de texto para centrarse

Tengo un textview que contiene una imagen y un poco de texto.

Programáticamente he añadido la imagen dibujable a la izquierda de la vista de texto

txtIDFav.setCompoundDrawablesWithIntrinsicBounds(R.drawable.fav_enabled, 0, 0, 0); 

He alineado la vista de texto con el centro usando

 txtIDFav.setGravity(Gravity.CENTER); 

Ahora el texto de la vista de texto está alineado con el centro. Pero la imagen está en el lado izquierdo.

Por ejemplo: [image] _____________________ mytext

Utiliza el _ para dar espacio como no es permitido.

Quiero alinear la imagen al centro junto con el texto.

Por ejemplo: _____________________ [image] mytext

Por favor aconséjame.

Gracias y aprecio.

  • TextView que está vinculado y seleccionable?
  • Cómo asignar el tamaño de texto en el valor de sp usando código java
  • Cómo agregar borde a un texto en textview android
  • Cómo cambiar el texto de TextView en el cambio de texto de EditText?
  • Fondo de TextView para Android
  • Multilínea de Android TextView, comprueba si el texto se ajusta o comprueba si TextView está lleno
  • TextView en el centro de la pantalla
  • ¿Cómo puedo cambiar el color del textView android.R.layout.simple_spinner_dropdown_item?
  • 5 Solutions collect form web for “Alinear la imagen dibujable dentro de una vista de texto para centrarse”

    Supongo que sucedió porque el ancho de textView se establece en match_parent o fill_parent. Intente ajustar textView width to wrap_content y centrar todo el textView no sólo texto.

    Diseño:

     <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textViewTest" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="Test" android:textSize="28sp" /> </FrameLayout> 

    Actividad:

     public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textViewTest=(TextView)findViewById(R.id.textViewTest); textViewTest.setCompoundDrawablesWithIntrinsicBounds(R.mipmap.ic_launcher, 0, 0, 0); } } 

    Resultado

    Incorpore el dibujable en su texto usando una SpannableString.

      SpannableStringBuilder textspan = new SpannableStringBuilder(" " + yourText); Drawable icon = getResources().getDrawable(R.drawable.fav_enabled); // jump drawable to the text view's state (if it is a state drawable) icon.setState(textView.getBackground().getState()); // match the background state textspan.setSpan(new ImageSpan(icon, ImageSpan.ALIGN_BOTTOM), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(textspan); 

    No es posible establecer la imagen en el fondo de la vista de texto en lugar de esto se puede establecer su drawable en textview como este

    Android: drawableRight = "@ drawable / ic_launcher"

    "o"

    Android: drawableleft = "@ drawable / ic_launcher"

    "o"

    Android: drawableBottom = "@ drawable / ic_launcher"

    Sólo para la solución de su problema se puede utilizar texview dentro de la framelayout de esta manera

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:layout_width="match_parent" android:background="@drawable/ic_launcher" android:layout_gravity="center" android:layout_height="wrap_content" > <TextView android:id="@+id/textView1" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </FrameLayout> 

    Tienes que escribir código como este: –

     txtIDFav.setGravity(Gravity.CENTER | Gravity.RIGHT); 

    Pruebe esto, debería funcionar:

      Spannable span = new SpannableString(" " + txtIDFav.getText()); // or set your text manually Drawable drawable; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { drawable = getResources().getDrawable(R.drawable.fav_enabled, getContext().getTheme()); } else { drawable = getResources().getDrawable(R.drawable.fav_enabled); } drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); ImageSpan imageSpan = new ImageSpan(drawable); span.setSpan(imageSpan, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); txtIDFav.setText(span); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.