Android TextView drawable, Polsterung zwischen drawable und Text ändern?

Lesezeit: 2 Minuten

Benutzer-Avatar
Benutzer1648374

Ich erstelle eine TextView mit einziehbarer Unterseite, in a GridLayout.

Ich möchte das Drawable in die Mitte bringen TextView; Ich habe es mit versucht
setCompoundDrawablePadding(-75) und es ändert nur die Position des Textes.

Aktueller Code:

    TextView secondItem = new TextView(this);
    GridLayout.LayoutParams second = new GridLayout.LayoutParams(row2, col1);
    second.width = halfOfScreenWidth;
    second.height = (int) (quarterScreenWidth * 1.5);
    secondItem.setLayoutParams(second);
    secondItem.setBackgroundResource(R.color.MenuSecond);
    secondItem.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, R.drawable.ic_action_new);
    secondItem.setText("Text");
    secondItem.setCompoundDrawablePadding(-180);
    secondItem.setGravity(Gravity.CENTER);
    secondItem.setTextAppearance(this, android.R.style.TextAppearance_Large_Inverse);
    gridLayout.addView(secondItem, second);

Wie kann ich den Text einstellen und auf die Mitte des zeichnen TextView?

Sie müssen kombinieren drawablePadding und padding um das gewünschte Ergebnis zu erhalten.

  • Wie würden Sie es für verschiedene Texte kombinieren (z. B. verschiedene Gebietsschemata)?

    – Orion

    16. Januar 2017 um 15:21 Uhr

Benutzer-Avatar
Anubhav

Im XML-Format:

android:drawablePadding = paddingValue

oder

Programmatisch:

TextView txt;

txt.setCompoundDrawablePadding(paddingValue)

android:drawablePadding Dies ist der einfachste Weg, dem zeichbaren Symbol eine Auffüllung zu geben, aber Sie können keine spezifische einseitige Auffüllung wie z PolsterungRechts oder paddingLinks des ausziehbaren Symbols. Dadurch werden beide Seiten des Drawables gepolstert.

  <Button
            android:id="@+id/otherapps"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/btn_background"
            android:text="@string/other_apps"
            android:layout_weight="1"
            android:fontFamily="cursive"
            android:layout_marginBottom="10dp"
            android:drawableLeft="@drawable/ic_more"
            android:paddingLeft="8dp" //for drawable padding to the left
            android:textColor="@android:color/holo_red_light" />`enter code here`

Sie können die Ebenenliste verwenden.

Vor:

Geben Sie hier die Bildbeschreibung ein

XML für Form erstellen – shape_rectangle.xml :

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="5dp">
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <solid android:color="@color/my_color" />
        <size
            android:width="5dp"
            android:height="5dp" />
    </shape>
</item>
</layer-list>

Nach:

Geben Sie hier die Bildbeschreibung ein

In xml gibt es sowas wie android:right. Sie können auch hinzufügen top,left,bottom. Auf diese Weise können Sie zum Beispiel Folgendes angeben: Padding links und rechts auf drawable, ohne die Gesamthöhe von textView zu ändern.

1206360cookie-checkAndroid TextView drawable, Polsterung zwischen drawable und Text ändern?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy