1
我正在編寫一個Android應用程序。我的主項目中有一項活動,它繼承自我的圖書館項目中的活動。我在基本活動中有一個自定義標題欄,它有一個按鈕,它使用以下樣式:如何爲代碼中設置的參數設置佈局單位?
<style name="TitleButton">
<item name="android:padding">6dp</item>
<item name="android:layout_width">48dip</item>
<item name="android:layout_height">48dip</item>
<item name="android:layout_gravity">right</item>
</style>
工作正常。在我的孩子活動中,我想添加一個按鈕。我可以添加按鈕,它點擊並正常工作,但它看起來不對。我加入按鈕,像這樣:
ImageView imgAdd = new ImageView(this, null, R.style.TitleButton);
imgAdd.setImageResource(R.drawable.add);
imgAdd.setClickable(true);
imgAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
addGroup();
}
});
FrameLayout tb = (FrameLayout) this.findViewById(R.id.Header);
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
tb.findViewById(R.id.TitleClose).getLayoutParams()
);
lp.gravity = Gravity.RIGHT;
lp.width = 48;
lp.height = 48;
lp.setMargins(0, 9, 68, 0);
imgAdd.setLayoutParams(lp);
tb.addView(imgAdd, 1);
通知我已經通過代碼添加的添加按鈕是如何太大,抵消過多。我認爲它一定是因爲在this answer的評論中指出的,因此設置寬度和高度使它們以像素爲單位,其中XML佈局將它們設置爲傾斜。所以,我的問題是,在代碼中設置佈局參數時,如何設置單位,以便我可以將我的新添加按鈕設置爲傾角而不是像素,以便它能夠正確顯示?
呸!騙子!從概念上講,你說的是有道理的,......唯一的問題是我的平板電腦(它看起來不正確)報告它與我的手機密度相同(它看起來正確)。結果,密度公式返回1:1的因子,所以根本不改變大小。無論如何,謝謝你的想法。 – eidylon