Я создал базовый адаптер, который реализует ListAdapter. Этот BaseAdapter читает JSON-файл и заполняет мой ListView раздуванием пользовательского макета.Создание вида программно в соответствии с разрешением экрана
В этом JSON-файле у меня есть логическое значение (active = true или active = false). Если активен true, я раздуваю настраиваемый макет, и все в порядке, но если активен false, мне нужно создать новый вид в этом настраиваемом макете. Вот мой код:
if (!active) {
JSONObject notifications = jsonData.getJSONObject("notifications");
String message = notifications.getString("message");
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
params.height = 70;
TextView warning = new TextView(Controller.getContext());
warning.setText(message);
warning.setTextColor(Color.WHITE);
warning.setBackgroundColor(Color.RED);
warning.setGravity(Gravity.CENTER);
warning.setPadding(10, 0, 10, 0);
warning.setLayoutParams(params);
// contentFrame is a RelativeLayout where the view is created;
viewHolder.contentFrame.getLayoutParams().height = 320;
viewHolder.contentFrame.addView(warning);
}
Моя проблема здесь заключается в следующем:
params.height = 70;
viewHolder.contentFrame.getLayoutParams().height = 320;
Я говорю, что мой TextView 70 пикселей выше и мой RelativeLayout теперь высоко 320 pixeis.
Он хорошо выглядит на моем телефоне, но если я проведу проверку на телефоне с другим разрешением, он не будет выглядеть так же верно?
Есть ли способ создать представление и определить высоту или ширину в соответствии с разрешением экрана? Возможно, создайте View 10% размер разрешения экрана? Это хорошая оценка? Какой лучший подход к чему-то подобному?