1

Button内部があり、LinearLayoutその高さを取得したい。

を使用sample_button.getHeight()しましたが、高さの値が異なります。

seekbarつまり、次のように進行状況に基づいてボタンの高さを変更しています。

public void onProgressChanged(SeekBar seekBar, int progress,
            boolean fromTouch) {

LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(
                new ViewGroup.MarginLayoutParams(50, progress * 20));

        lp2.setMargins(200, 0, 0, 0);
        sample_button.setLayoutParams(lp2);

Log.i("Activity", "progress = " + progress);
Log.i("Activity",
                "sample_button.getHeight() = " + sample_button.getHeight());
}

ログ値は次のとおりです。

progress = 1
sample_button.getHeight() = 60

progress = 2
sample_button.getHeight() = 20

progress = 3
sample_button.getHeight() = 40

progress = 2
sample_button.getHeight() = 60

progress = 3
sample_button.getHeight() = 40

progress = 4
sample_button.getHeight() = 60

progress = 3
sample_button.getHeight() = 80

ボタンが正しく表示されることに注意しprogress=2height=20くださいheight=60

私は何か間違ったことをしていますか?どんな助けでも感謝します。

4

1 に答える 1

1

この方法で試しましたか:

ViewGroup.LayoutParams params = sample_button.getLayoutParams();
params.height = progress * 20;
sample_button.setLayoutParams(params);
于 2012-09-25T06:01:26.400 に答える