Как правильно согласовать взгляды в соответствии с дизайном? - PullRequest
0 голосов
/ 16 сентября 2011

дизайнер сделал дизайн для моего приложения для Android, вот дизайн для ListView (не настоящий, но с той же идеей ..):
enter image description here

Таким образом, в середине зеленой области есть некоторый текст, а в оранжевой области - изображение (кликабельно ..), а в середине синей области - другой текст ... это 1 список ... так что если проведите пальцем по одной строке, а другой - тоже. (они не являются 3 списками). Желтая область пуста

Как мне выровнять виды, чтобы они работали на экранах всех размеров? Как я могу центрировать текст в зеленой и синей области?
Спасибо

Вот xml строки, которую я использовал:

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:orientation="horizontal"
android:layout_height="wrap_content" android:paddingLeft="40dip"
android:paddingRight="40dip">
<TextView android:id="@+id/Start_Numbering" android:textSize="19.5sp"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_weight="0.3" 
    />

<ImageView android:id="@+id/Start_ImageView"
    android:layout_weight="0.1" android:layout_height="wrap_content"
    android:layout_width="fill_parent"        android:src="@drawable/list_noaudioavailable"
    ></ImageView>


<TextView android:id="@+id/Start_Name" android:textColor="#a7e9fe"
    android:textSize="21dip" android:layout_width="fill_parent"
    android:layout_weight="0.6"
    android:layout_height="wrap_content" />

Вот getView:

 @Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder     holder;

    if(convertView == null) {
        convertView = mInflater.inflate(R.layout.start_row, null); //line 47
        holder=new ViewHolder();

        holder.tv_Name   =(TextView)convertView.findViewById(R.id.Start_Name);
        holder.tv_PageNumber = (TextView)convertView.findViewById(R.id.Start_Numbering);
        holder.im_Audio=(ImageView)convertView.findViewById(R.id.Start_ImageView);
        convertView.setTag(holder);
    } else {
        holder  = (ViewHolder) convertView.getTag();
    }

    holder.tv_Name.setText(Names[position]);
    holder.tv_PageNumber.setText(Integer.toString(PageNumber[position]));
    return convertView;
}

class ViewHolder {
    TextView       tv_Name;
    TextView       tv_PageNumber;
    ImageView      im_Audio;
}

Но все, что я получаю, это то, почему tv_Name не отображается ?: enter image description here

1 Ответ

1 голос
/ 16 сентября 2011

Омар, ваши вопросы не были кристально ясны, но я сделаю это.

Вы используете

В вашем row.xml вы бы использовали

  1. LinearLayout в качестве родителя с горизонтальной ориентацией
  2. У него будет пять дочерних элементов

    • а. Желтый вид с layout_weight = 2
    • б. Синий TextField с layout_weight = 5
    • с. Оранжевый ImageField с layout_weight = 3
    • д. Зеленый TextField с layout_weight = 4
    • е. Желтый вид с layout_weight = 1

Для центрирования текста используйте соответствующее свойство выравнивания текста. Все эти элементы должны иметь layout_width, определенную как fill_parent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...