2012-03-28 91 views
1

在開發Android應用程序時,我偶然發現了一個令人困惑的問題。我正在創建的UI元素是一個具有自定義搜索字段的標題欄。在Android UI編輯器中,一切看起來都很棒,但第二個我使用模擬器或其設備,並壓縮放大鏡圖像並剪輯編輯文本。我已經嘗試了許多事情,包括將搜索區域的背景圖像更改爲當前位於父LinearLayout中的自定義搜索字段。但是,這會導致搜索字段大小失控。Android UI編輯器/顯示器問題

歡迎任何建議。

我的問題是:
1)如何解決這個問題,同時保持搜索區域的外觀?
2)爲什麼會發生此問題?

證實,對以下設備:
三星GALAXY Nexus 4.0.2
摩托羅拉變焦4.0.3
歌Nexus S 2.3.7

這是UI編輯器的截圖:
This is a screenshot of the UI editor

這是它在所有測試設備上看起來像的屏幕截圖:
This is a screenshot of what it looks like on all devices tested

用來產生這些UI元素的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> 

回答

2

只是想出了這個問題。搜索背景圖像的頂部和左側設置爲9貼片比例。這一切都很好,但我們忘記了設置底部和右側填充區域,以便內容可以存在。

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

記得設置填充的區域!

事實證明,Android UI編輯器不能處理像設備這樣的9-patch圖像。這對我來說似乎是一個錯誤。