9Patch кнопку изменить размер изображения в приложении для Android - PullRequest
0 голосов
/ 02 марта 2012

У меня возникли проблемы с использованием 9patch с Android SDK в Eclipse IDE (Indigo).Я создаю 30 * 25 изображение 9Patch, которое я хочу использовать в качестве фона кнопки.

Теперь это изображение 9Patch, даже если оно настолько маленькое, прекрасно работает в IDE во время разработки.Фактически, если я изменяю размер экрана устройства, моя кнопка очень хорошо меняет размер, и фон остается хорошо определенным от 2,7 "до 10,1" экранов.

Но когда я запускаю свое приложение на реальном устройстве или в режиме отладки (толькос устройством с размером экрана> = 3,7 ") изображение теряет свое качество и рассеивается точно так же, как это делал старый MS Paint при увеличении изображения! Как на изображении по ссылке выше!

http://www.google.it/imgres?q=low+quality+image&um=1&hl=it&biw=1280&bih=915&tbm=isch&tbnid=jArCzplVG4XNFM:&imgrefurl=http://www.bestandroidsphones.com/tag/droid&docid=w_to2ChM5qxkwM&imgurl=http://www.bestandroidsphones.com/wp-content/Pictures/mobilephone/android_logo_low_quality.jpg&w=400&h=400&ei=bh5RT9u7NMjCswaK5I3xCw&zoom=1&iact=hc&vpx=189&vpy=161&dur=388&hovh=225&hovw=225&tx=134&ty=95&sig=102908265289684600078&page=2&tbnh=163&tbnw=162&start=30&ndsp=25&ved=1t:429,r:10,s:30

Я также пытался использовать больший 9patch (300 * 250), но таким образом он работает только на больших экранах, в то время как на маленьких экранах изменение размера фона кнопки ужасает. Текст становится нечитаемым,фон перекрывается, а иногда кажется, что оборачивается и т. д. Что, черт возьми, с этим не так? Почему в моей IDE все работает хорошо, а в моем приложении нет? Я не хочу создавать разные 9-патчи для каждого small-medium-large-xlargeи категория экрана комбинаций ldpi-mdpi-hdpi-xhdpi ... 9patch специально создан для решения такого рода проблем с изменением размера ....

Я публикую некоторыекод для рассматриваемой кнопки:

 <Button
    android:id="@+id/btnStart"
    style="@style/button_style"
    android:layout_width="match_parent"
    android:layout_height="0px"
    android:layout_weight=".10"
    android:text="@string/btnStartText" >
</Button>

И этот стиль применяется к кнопке:

<style name="button_style" parent="android:Widget.Button">
    <item name="android:background">@drawable/button_statelistdrawable</item>
    <item name="android:textColor">@color/White</item>
    <item name="android:textSize">28sp</item>
</style>

Надеюсь, кто-то мне поможет .... Заранее спасибо =)

1 Ответ

1 голос
/ 03 марта 2012

В вашем 9-патче отсутствует область определения отступа (внизу и справа), поэтому это не правильный 9-патч, который, скорее всего, объяснит ошибки дисплея.

Я добавил их в этот файл-образец:

sample 9-patch

...