web-dev-qa-db-ja.com

Android TextView drawable、drawableとtextの間でパディングを変更しますか?

TextViewの下に、下にドローアブルを持つGridLayoutを作成しています。

ドロアブルをTextViewの中央に持って行きたいです。 setCompoundDrawablePadding(-75)を試してみましたが、テキストの位置が変わるだけです。

現在のコード:

    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);

TextViewの中央にテキストとドロウアブルを設定するにはどうすればよいですか?

47
user1648374

drawablePaddingpaddingを組み合わせて、目的の結果を得る必要があります。

109
ssantos

XMLの場合

Android:drawablePadding = paddingValue

または

プログラムで:

TextView txt;

txt.setCompoundDrawablePadding(paddingValue)

Android:drawablePaddingは、描画可能なアイコンにパディングを与える最も簡単な方法ですが、paddingRightまたはpaddingLeftのような特定の片側のパディングを与えることはできません描画可能なアイコン。これにより、ドロアブルの両側にパディングが与えられます。

10
Anubhav
  <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`

Layer-listを使用できます。

前:

enter image description here

形状のxmlを作成します-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>

後:

enter image description here

Xmlには、Android:righttopleftbottomも追加できます。たとえば、textViewの全体の高さを変更せずに、Drawableの左右にパディングします。

0
deadfish