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
の中央にテキストとドロウアブルを設定するにはどうすればよいですか?
drawablePadding
とpadding
を組み合わせて、目的の結果を得る必要があります。
XMLの場合
Android:drawablePadding = paddingValue
または
プログラムで:
TextView txt;
txt.setCompoundDrawablePadding(paddingValue)
Android:drawablePaddingは、描画可能なアイコンにパディングを与える最も簡単な方法ですが、paddingRightまたはpaddingLeftのような特定の片側のパディングを与えることはできません描画可能なアイコン。これにより、ドロアブルの両側にパディングが与えられます。
<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を使用できます。
前:
形状の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>
後:
Xmlには、Android:right
。 top
、left
、bottom
も追加できます。たとえば、textViewの全体の高さを変更せずに、Drawableの左右にパディングします。