Android View Layout Масштабирование растровых изображений - PullRequest
0 голосов
/ 02 мая 2011

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

Но я вижу, что между растровыми изображениями есть пространство. Левая и правая шкала, но между ними есть пробел.

Например, что я получаю:
http://www.58seconds.com/getting.png

То, что я хочу, это:
http://www.58seconds.com/want.png

Есть идеи?

Вот фрагмент кода, который я использую:

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >   
<ImageView 
    android:layout_width="1dp"
    android:layout_weight="1"
    android:layout_height="45sp"
    android:src="@drawable/mdjleftfiller"
    android:layout_gravity="top"
    android:gravity="top" 
    android:scaleType="fitXY"
    />
<ImageView 
    android:id="@+id/command_selection_topImage"
    android:layout_width="wrap_content"
    android:layout_height="45sp"
    android:src="@drawable/top_image"
    android:layout_gravity="top"
    android:gravity="top" 
    android:layout_weight="0"
    />
<ImageView 
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="45sp"
    android:src="@drawable/mdjrightfiller"
    android:layout_gravity="top"
    android:gravity="top" 
    android:scaleType="fitXY"
    />
</LinearLayout>

Ответы [ 3 ]

1 голос
/ 02 мая 2011

Задумывались ли вы о создании 9-патча с вашим изображением в строке заголовка? Если у вас есть «растянутые» части по обе стороны от реального заголовка, он растянется, чтобы соответствовать всем, что вы хотите, не прибегая к хитрости макета.

0 голосов
/ 03 мая 2011

Вот хороший чистый способ сделать это, в точности то, о чем говорил Лукас, но в xml:

<FrameLayout android:id="@+id/navbar" android:layout_width="fill_parent" android:layout_height="wrap_content"           android:background="@drawable/titlebar_repeat">
    <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/titlebar_logo" android:layout_gravity="center" />
</FrameLayout>

В этом случае titlebar_repeat имеет ширину всего в один пиксель, а titlebar_logo - это просто текст с прозрачным фоном. В вашем случае, поскольку вам, кажется, не нужен сильно стилизованный текст, вы можете вместо этого просто сделать ImageView TextView, если хотите.

0 голосов
/ 02 мая 2011

Попробуйте создать два изображения, одно в качестве фона, а scaleType в FIT_CENTER, затем установите другое в положение сверху и просто переместите в центр.

...