wake-up-neo.com

Android TextView kann gezeichnet werden, die Auffüllung zwischen Zeichen und Text ändern?

Ich erstelle eine TextView mit einer Zeichenfläche darunter, in einer GridLayout

Ich möchte das Drawable in die Mitte der TextView bringen; Ich habe es mit setCompoundDrawablePadding(-75) ausprobiert und ä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 und die Mitte der TextView zeichnen und zeichnen?

43
user1648374

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

101
ssantos

In XML:

Android:drawablePadding = paddingValue

oder

Programmatisch:

TextView txt;

txt.setCompoundDrawablePadding(paddingValue)

Android: drawablePadding ist der einfachste Weg, um das drawable-Symbol mit einem Padding zu versehen, aber Sie können keine bestimmte seitliche Auffüllung wie paddingRight oder paddingLeft des drawable-Icons angeben. Dies gibt eine Polsterung auf jeder Seite des Zeichenblatts.

9
Anubhav

Sie können die Layer-Liste verwenden.

Vor:

 enter image description here

Erstellen Sie XML für Shape - 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 dem:

 enter image description here

In XML gibt es etwas wie Android:right. Sie können auch top, left, bottom hinzufügen. Auf diese Weise können Sie zum Beispiel Folgendes angeben: Auffüllen nach links und rechts, um die Gesamthöhe von textView zu ändern.

0
deadfish
  <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`