1

もう読んだ:

xmlではなくコードを使用してImageViewのマージンを設定する方法

および使用するコメント「context.getResources().getDisplayMetrics().density を使用して px 値をスケーリングできます」

つまり、いくつかの値を色で表すスケールがあり、カーソルを特定の値に向ける必要があります。

すべてが「dip」でカウントされるため、px ではなく文法的に dip を送信するにはどうすればよいですか?

例えば:

0____T_h_i_s__i_s___m_y___s_c_a_l_e_____________300dp

        ^  - My cursor pointing to 100dp (LeftMargin = 100dp)

このコード行を使用してセットアップしています:

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(leftMargin, 0, 0, 0);
BMIcursor.setLayoutParams(lp);
4

1 に答える 1

4

ピクセル単位の左余白は、次のように計算できます。

leftMarginPx = leftMarginDp * context.getResources().getDisplayMetrics().density;

だからあなたのコードで:

    leftMarginDp = 100 // 100dp;
    leftMargin = leftMarginDp * context.getResources().getDisplayMetrics().density;
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    lp.setMargins(leftMargin, 0, 0, 0);
    BMIcursor.setLayoutParams(lp);
于 2012-09-10T12:28:35.433 に答える