9

xml ファイルを使用する場合、layout_margin というオプションがあります (たとえば、 text view の場合は layout_margin ="1dp" ) が、プログラムで設定したいのですが、その方法がわかりません。

4

8 に答える 8

15
   LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)textview.getLayoutParams();
     params.setMargins(20, 0, 0, 0); 
     textview.setLayoutParams(params);
于 2012-07-16T12:52:13.647 に答える
6

StackOverflow に質問を追加する前に、Google に問い合わせてください。

TextView tv = (TextView)findViewById(R.id.my_text_view);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)tv.getLayoutParams();
params.setMargins(0, 0, 10, 0); //substitute parameters for left, top, right, bottom
tv.setLayoutParams(params);
于 2012-07-16T12:54:14.383 に答える
3

あなたはこれによって行うことができます:

TextView text = (TextView) findViewById(R.id.text);   
LinearLayout.LayoutParams params= new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(left, top, right, bottom);//pass int values for left,top,right,bottom
text.setLayoutParams(params);
于 2012-07-16T12:57:08.153 に答える
2
TextView tv = (TextView) findViewById(R.id.tvId);   
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
llp.setMargins(50, 0, 0, 0); // llp.setMargins(left, top, right, bottom);
tv.setLayoutParams(llp);
于 2012-07-16T12:51:58.577 に答える
2

すべての LayoutParams にメソッド setMargins() があるわけではないことに注意してください。

RelativeLayout、LinearLayout などには独自の内部クラス LayoutParams があるため、setMargins を常に使用できるとは限りません。

于 2013-05-09T11:34:52.040 に答える
0

setMargins()でを使用できますLinearLayout.LayoutParams。詳細については、この StackOverflow の質問の回答を参照してください。

于 2012-07-16T12:52:40.123 に答える
0
        TextView tv = (TextView)findViewById(R.id.item_title));
        RelativeLayout.LayoutParams mRelativelp = (RelativeLayout.LayoutParams) tv
                    .getLayoutParams();
        mRelativelp.setMargins(DptoPxConvertion(15), 0, DptoPxConvertion (15), 0);
        tv.setLayoutParams(mRelativelp);

    private int DptoPxConvertion(int dpValue)
    {
       return (int)((dpValue * mContext.getResources().getDisplayMetrics().density) + 0.5);
    }

textview の getLayoutParams() は、 xml の textview の Parent に基づいて、対応する Params にキャストする必要があります。

<RelativeLayout>
   <TextView
    android:id="@+id/item_title">
</RelativeLayout>

TextView の親が RelativeLayout の場合は、上記の RelativeLayout.LayoutParams を意味します。親が LinearLayout の場合は、

LinearLayout.LayoutParams mLinearlp = (LinearLayout.LayoutParams) tv
                    .getLayoutParams();

異なるデバイスで同じ実際のサイズをレンダリングするには、上記で使用した DptoPxConversion() メソッドを使用します。setMargin(left,top,right,bottom) パラメータは、 dp ではなくピクセルで値を取ります。

于 2017-09-06T13:08:24.137 に答える