2014-01-29 4 views
0

Я хочу создать представления в Android на этом фоне:Какого размера для фонового изображения в Android

enter image description here

В заголовке должен быть два TextViews и значок и содержание может быть различным. Моя проблема заключается в том, что я не знаю размер TextView (или другого представления) на устройстве пользователя. Итак, в каком размере я должен хранить изображение, чтобы оно отображалось правильно на всех устройствах? Конечно, я не хочу тратить время на это изображение в моем приложении, поэтому я должен быть самым маленьким.

Или можно создать что-то подобное (в частности, тень между заголовком и контентом - всего две линии черно-белого с прозрачностью 12%) в форме?

ответ

2

Для этого можно использовать изображение 9patch. Подробности можно найти here, но в основном вам потребуется только изображение 2x1 пикселей. Затем вы можете использовать инструмент, описанный в ссылке, для создания файла 9patch, который вы используете в качестве файла изображения. Android затем разумно растягивает изображение для вас в зависимости от ширины экрана.

Хорошо, правка:

Я решил помочь вам немного больше. Вы правы в отношении инструмента NinePatch, похоже, что он должен быть как минимум 2x4. Я быстро наверстал небольшое изображение в Gimp

я затем импортировать его в инструмент NinePatch и установить соответствующие не поддающийся растяжению ЧАСТИ

Тогда я импортировал его в мой drawable- nodpi и ссылается на него в ImageView. Убедитесь, что вы используете android:scaleType="fitXY"

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:background="#FFC2C2C2" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="25sp" 
    android:padding="5dp" 
    android:text="Header" /> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:scaleType="fitXY" 
    android:src="@drawable/gradient_line_image" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="25sp" 
    android:padding="5dp" 
    android:text="Content" /> 

</LinearLayout> 

, который дает мне

Просто упаковывают вы хотите его, вот мой 9patch файл

Я не уверен, что у всех что вы подразумеваете под «оба TextViews находятся в заголовке», хотя ...

+0

Благодарим за это, но если я хочу открыть 2x1-пиксельное изображение в программе 9 патчей, он не сможет его открыть. С большими изображениями это не проблема. Любые идеи почему? И как я могу быть уверенным, что оба TextViews находятся в заголовке? – Cilenco

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