2012-01-04 29 views
0

以下代碼在仿真器上正確運行。但在真實設備上是錯誤的。如何使xml定義的按鈕樣式顯示正確的真正的Android設備而不是模擬器?

我有3個相應按鈕狀態的xml文件:button_default.xml \ button_pressed.xml \ button_selected.xml。這是其中之一。除了顏色以外,其他的都是一樣的。

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
     <solid android:color="#FF484747" /> 
     <corners 
      android:topLeftRadius="5px" 
      android:topRightRadius="5px" 
      android:bottomLeftRadius="5px" 
      android:bottomRightRadius="5px" /> 
     </shape> 
    </item> 
    <item android:top="1px" android:bottom="1px" android:left="1px" android:right="1px"> 
    <shape> 
     <gradient 
      android:startColor="#FF484747" android:endColor="#FF000000" 
      android:type="linear" android:angle="270" 
      android:centerX="0.5" android:centerY="0.5" /> 
     <corners 
      android:topLeftRadius="5px" 
      android:topRightRadius="5px" 
      android:bottomLeftRadius="5px" 
      android:bottomRightRadius="5px" /> 
     </shape> 
    </item> 
</layer-list> 

然後我寫了button.xml如下:

<?xml version="1.0" encoding="UTF-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
     android:drawable="@drawable/button_pressed" /> 
    <item android:state_focused="true" 
     android:drawable="@drawable/button_selected" /> 
    <item android:drawable="@drawable/button_default" /> 
</selector> 

最後是styles.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <style name="button" parent="android:Widget.Button"> 
     <item name="android:background">@drawable/button</item> 
    </style> 
</resources> 

這是仿真器視圖(它是在模擬器2.3相同和4.0): (我現在不能上傳圖片,你可以在這裏找到:http://i.stack.imgur.com/uVtd9.jpg

但它會是一個黃色背景按鈕當我安裝* .apk到我的android墊(與android 2.3)。

任何人都可以提供任何方向來解決它嗎?提前致謝!!!

+0

我終於解決了它。我將button.xml重命名爲defaultbutton.xml。並修改styles.xml「 @ drawable/button」 to「 @ drawable/defaultbutton」。然後它工作。我想Android在清除應用程序時並不清除所有資源文件。 (以前的風格文件是黃色背景。) – David 2012-01-04 07:04:54

+0

無論如何。謝謝sfratini \亞歷克斯! – David 2012-01-04 07:08:35

回答

0

也許你的按鈕變得突出顯示?您的模擬器是否與您的手機具有相同的規格? (特殊觸摸屏)

嘗試在您的活動中添加另一個(如果您只有一個)並使用它。

+0

THX,sfratini.I在我的應用程序中有drawable-hdpi \ drawable-mdpi \ drawable-ldpi。這些文件夾中有3個副本:) – David 2012-01-04 06:54:19

0

您的選擇器的狀態爲「android:state_focused」,它定義了按鈕在焦點時的顏色。嘗試使用「android:state_selected」,看看它是否有幫助。

順便說一句,我會建議您將xml文件中的所有「5px」替換爲「5dp」,以使其適合不同的屏幕密度。

相關問題