Редактор пользовательского интерфейса Android / ошибка отображения - PullRequest
1 голос
/ 28 марта 2012

При разработке приложения для Android я столкнулся с непонятной проблемой. Элемент пользовательского интерфейса, который я создаю, представляет собой панель заголовка с настраиваемым полем поиска. В редакторе пользовательского интерфейса Android все выглядит замечательно, но во второй раз я использую эмулятор или устройство, которое выдает ошибку, сжимает изображение лупы и обрезает текст редактирования. Я пробовал несколько вещей, включая изменение фонового изображения области поиска на настраиваемое поле поиска, которое в настоящее время находится в родительском LinearLayout. Однако это приводит к тому, что размер поля поиска выходит из-под контроля.

Любые предложения приветствуются.

Мои вопросы:
1) Как можно решить эту проблему, сохраняя внешний вид области поиска?
2) Почему возникает эта проблема?

Подтверждено на следующих устройствах:
Samsung Galaxy Nexus 4.0.2
Motorola Zoom 4.0.3
Nexus S 2.3.7

Это скриншот редактора пользовательского интерфейса:
This is a screenshot of the UI editor

Это скриншот того, как это выглядит на всех протестированных устройствах:
This is a screenshot of what it looks like on all devices tested

XML, используемый для генерации этих элементов пользовательского интерфейса:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/title_bar_matte"
android:gravity="center_vertical"
android:orientation="horizontal" >

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_margin="10dp"
    android:layout_weight="1.0"
    android:background="@drawable/search_field"
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginLeft="15dp"
        android:src="@drawable/magnifying_glass" />


    <EditText
        android:id="@+id/campus_map_acitivity_search"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_marginLeft="10dp"
        android:layout_weight="1.0"
        android:background="#0FFF"
        android:hint="Search"
        android:imeOptions="actionSearch"
        android:singleLine="true" />
</LinearLayout>

<Button
    android:id="@+id/campus_map_activity_goto_list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:background="@drawable/button_list" />

<Button
    android:id="@+id/campus_map_activity_my_location"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:background="@drawable/button_location" />

</LinearLayout>

1 Ответ

2 голосов
/ 29 марта 2012

Просто разобрался с проблемой. Фоновое изображение поиска имело верхнюю и левую стороны, настроенные на 9-полосный масштаб. Это все хорошо и хорошо, но мы забыли установить нижнюю и правую области заполнения так, чтобы контент имел пространство для существования.

http://radleymarx.com/blog/simple-guide-to-9-patch/

Не забудьте установить области заполнения!

Оказывается, редактор пользовательского интерфейса Android не обрабатывает изображения с 9 патчами, как устройства. Мне кажется, это ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...