2012-04-04 5 views
0

У меня довольно простая компоновка с изображением и некоторые текстовые изображения, завернутые в вертикальный LinearLayout. Всякий раз, когда я устанавливаю фон этого макета как 9patch, высота макета, похоже, устанавливается на высоту 9patch (хотя 9patch, кажется, успешно растягивается, чтобы быть высотой макета.)9patch вызывает странную ошибку layout_height

Если Я использую сплошной цвет фона, высота макета работает по назначению.

Вот скриншот с 9patch на месте:

enter image description here

Вот скриншот с твердым фоном вместо 9patch (обратите внимание, как текст центрируется в макете сейчас):

enter image description here

И, наконец, вот XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/show_gray" 
    android:gravity="center_vertical" 
    android:orientation="horizontal" android:weightSum="5"> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="4" 
     android:scaleType="centerCrop" 
     android:src="@drawable/temp_featured_banner" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:background="#FF0000" 
     android:gravity="center" 
     android:orientation="vertical" 
     android:paddingLeft="30dp" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Large Text" 
      android:textColor="@color/white" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Small Text" 
      android:textColor="@color/white" /> 
    </LinearLayout> 

</LinearLayout> 

... и на всякий случай, вот скриншот draw9patch показывает мой 9patch вытяжке:

enter image description here

Я подозревал, что LinearLayout не выше, чем естественный размер 9patch (так что было нечего растягивать ..), поэтому я уменьшил 9patch в высоту на 50%. Проблема все еще существовала.

Любые идеи?

+0

Вы пытались установить область вертикального заполнения вашего девяти патча? – JRaymond

+0

@JRaymond есть две черные точки на самом левом верхнем и левом нижнем углу изображения. Это то, что вы имели ввиду? – NPike

+0

Нет ... верхняя и левая части девяти патчей относятся к области «растяжимая» изображения. Правая и нижняя части девяти патчей определяют, где ** контент ** должен идти - в настоящее время вы просто говорите ему, чтобы угадать (и он догадывается, помещая все содержимое в строку, обозначенную верхней левой точкой) , из того, что я могу сказать по вашему изображению, вы, вероятно, хотите сплошную черную линию сверху вниз (оставляя углы, конечно) справа от девяти патчей, и соответствующую точку в вашей верхней правой черной точке на bottom – JRaymond

ответ

1

Верхние и слева от девять пластыря относятся к «растягиванию» области изображения. Правая и нижняя части девяти патчей определяют, куда должен идти контент - в настоящее время вы просто говорите ему, чтобы угадать (и он догадывается, помещая все содержимое в строку, обозначенную верхней левой точкой). из того, что я могу сказать по вашему изображению, вы, вероятно, хотите сплошную черную линию сверху вниз (оставляя углы, конечно) справа от девяти патчей, и соответствующую точку в вашей верхней правой черной точке на дно. Это говорит операционной системе, где размещать контент по отношению к изображению, чтобы он лучше знал, как растянуть изображение.

Смежные вопросы