2

以下はテキストビューのレイアウトです。コードでlayout_marginRightをゼロに変更したいと思います。

<TextView
                android:id="@+id/status1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:layout_marginRight="@dimen/keyguard_lockscreen_status_line_font_right_margin"
                android:singleLine="true"
                android:ellipsize="marquee"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="@dimen/keyguard_lockscreen_status_line_font_size"
                android:drawablePadding="4dip"
 />

以下のようにaqifコードを自分のコードにコピーすると、アニメーションの電源がオンになると電話が停止します。

private void updateStatus1() {
        if (mStatus1View != null) {
            MutableInt icon = new MutableInt(0);
            CharSequence string = getPriorityTextMessage(icon);
            mStatus1View.setText(string);
            LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mStatus1View.getLayoutParams();
            params.rightMargin = 0;
            mStatus1View.setLayoutParams(params);

            mStatus1View.setCompoundDrawablesWithIntrinsicBounds(icon.value, 0, 0, 0);
            mStatus1View.setVisibility(mShowingStatus ? View.VISIBLE : View.INVISIBLE);
        }
    }
4

2 に答える 2

10

あなたはこのようにそれを行うことができます。

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) view.getLayoutParams();
params.rightMargin = 30;
view.setLayoutParams(params);

値を設定するにdpは、このように行うことができます。

params.rightMargin = (int) (30f * this.getResources().getDisplayMetrics().density);

また、paramsのタイプはその親によって異なります。ビューの親である場合、LinearLayoutparamsはタイプである必要がありLinearLayout.LayoutParams、の場合、RelativeLayoutparamsはタイプである必要がありますRelativeLayout.LayoutParams

よろしく、Aqif Hamid

于 2012-06-30T10:51:11.970 に答える
0

ViewGroup.MarginLayoutParams.rightMarginを使用して試してみてください:

TextView extView tv = (TextView)findViewById(R.id.status1);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)tv.getLayoutParams();
//params.setMargins(0, 0, 0, 0); //setMargins(int left, int top, int right, int bottom)
params.rightMargin=0; 
tv.setLayoutParams(params);
于 2012-06-30T10:55:44.697 に答える