Я пишу приложение для 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);
Обратите внимание, что кнопка «Добавить», которую я добавил через код, слишком велика и слишком сильно смещена.Я полагаю, что это должно быть связано с тем, что было указано в комментариях к этому ответу , что установка ширины и высоты так устанавливает их в пикселях, где, как макет XML устанавливает их в dip.Итак, мой вопрос: при настройке параметров макета в коде, как вы можете установить единицу измерения, чтобы я мог настроить мою новую кнопку добавления, чтобы она измерялась в dip, а не в пикселях, чтобы она отображалась правильно?