2013-12-08 3 views
1

У меня есть набор из четырех изображений 9patch, которые я хочу использовать для кнопки (ldpi to xhdpi). Он обычно появляется в дизайнере пользовательского интерфейса в eclipse, но на эмуляторе и на моем устройстве Android он растягивает изображение, как если бы оно не было 9patch.9patch изображение не работает

Изображения (я могу отправить только две ссылки максимум, извините):

ldpi http://i.stack.imgur.com/c2D6s.png

MDPI http://i.stack.imgur.com/G7ZzG.png

ИПЧР (ограничение ссылка достигнуто, извините)

xhdpi (ссылка предел достигнут, извините)

Вот прикладом на XML:

<Button 
    android:id="@+id/button1" 
    style="@style/loginstyle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/imageView2" 
    android:layout_alignLeft="@+id/imageView1" 
    android:layout_alignRight="@+id/imageView1" 
    android:layout_marginBottom="97dp" 
    android:onClick="onLogin" 
    android:padding="0dp" 
    android:paddingBottom="0dp" 
    android:paddingLeft="0dp" 
    android:paddingRight="0dp" 
    android:paddingTop="0dp" 
    android:text="Login" 
    android:textColor="#fff" /> 

Вот мой код стиль:

<style name="loginstyle"> 
<item name="android:background">@drawable/loginbuttondr</item> 
</style> 

Вот мой вытяжке XML (loginbuttondr.xml):

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="false" android:drawable="@drawable/loginbutton"/> 
</selector> 

Набор изображений называется loginbutton. 9.png

РЕШЕНИЕ: Благодаря @MoshEsran. Проблема заключалась в том, что я не добавлял к образцу правила заливки (правая и нижняя стороны).

+0

Так что же изображение на телефоне выглядеть? Можете ли вы опубликовать изображение? – kevin

+0

Eclipse выглядит правильно: http://prntscr.com/29r5i0 и на эмуляторе или в реальном устройстве: http://prntscr.com/29r580 – Arrexel

+0

Должно быть что-то не так с вашими 9-патч-чертежами для других разрешений. Обратите внимание, что вы не можете просто увеличить размер изображения, чтобы сделать чертежи для другого разрешения, так как черные линии будут пропорционально увеличены, что вам не нужно, потому что черные линии разрешены только для 1px. Можете ли вы опубликовать другой файл drawables, если это возможно? – kevin

ответ

1

Проблема может быть в цвете патч-линии не является чистым черным.

Вы должны использовать # 000000, однако, в настоящее время у вас возникли # 101a05

+0

хорошо замеченный KevinT –

+0

никто не рисует линии 9Patch, они используют редакторы 9Patch! –

+0

Я по-прежнему старомодный фотомагазин – kevin

0

Изображение 9Patch предназначено для растягивания. Это их функция. Если кнопки не выглядят так, как вам хотелось, то, вероятно, это тоже;

a) Ваш формат кнопок XML неверен для того, что вы хотите достичь (добавьте его на свой вопрос, чтобы мы могли посмотреть).

или

б) Вы не предоставили 9Patch изображения с правильным разрешением для вашего устройства.

+0

Добавлен код кнопки на вопрос. Кроме того, на реальном устройстве и на эмуляторе он обрабатывает его как обычное изображение и растягивает его, причем черные линии 9patch все еще видны, например: http://prntscr.com/29r580 В eclipse он отображается правильно. Пример: http://prntscr.com/29r5i0 – Arrexel

+0

, потому что эмулятор работает на разной плотности, а не на вашем реальном устройстве. –

+0

в дизайнере пользовательского интерфейса в Eclipse, вы выбираете предварительный просмотр устройства, возможно, вы выбрали более низкое устройство, для этого есть правильное 9 патч-изображений, попробуйте этот эксперимент, удалите все 'loginbutton.9.png' в папках res , а затем просто поместите одну копию, например, mdpi и очистите/создайте проект и попробуйте на реальном устройстве. –

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