2012-06-27 19 views
1

我一直在Android 2.2上工作了一段時間,對此我感到非常滿意。然而,技術的進步,現在是時候升級老女孩與Honeycomb和ICS一起工作...自定義按鈕在應用程序中看起來不好,現在我們已經升級Android

其中一個看起來不正確的東西是我的屏幕上的按鈕。這很令人沮喪,但我似乎無法找到讓他們看起來像以前一樣的方式。我的按鈕使用自定義drawable,這是一個XML文件,而不是實際的圖形。它看起來像這樣:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape> 
      <gradient 
       android:startColor="#444444" 
       android:endColor="#444444" /> 

      <stroke 
       android:width="1dip" 
       android:antialias="true" 
       android:color="@android:color/white" /> 

      <corners 
       android:radius="8dip" /> 

      <padding 
       android:left="2dip" 
       android:top="2dip" 
       android:right="2dip" 
       android:bottom="2dip" /> 
     </shape> 
    </item> 
</selector> 

按鈕抓住這個代碼在layout.xml文件是這樣的:

<Button 
    android:id="@+id/button1" 
    android:layout_weight="1" 
    android:layout_width="1dp" 
    android:layout_margin="2dp" 
    android:longClickable="true" 
    android:visibility="invisible" 
    android:layout_height="fill_parent" 
    android:background="@drawable/def_gray" 
    android:layout_gravity="center_vertical" 
    android:textColor="@android:color/white" 
    android:gravity="center_horizontal|center_vertical" /> 

這曾經交出了漂亮的,具有專業外觀的圓角矩形按鈕白色邊框和灰色中心。但是,現在我正在三星Galaxy Tab 2上運行我的代碼(運行ICS),邊界的圓角部分不是白色 - 它們是灰色的,看起來很糟糕。我發現如果我將中風增加到2dip,角落將變成白色,但我真的更願意保留軟件的早期版本外觀。

我從經驗中得知,如果我使用畫布繪製曲線的東西,則此問題的答案是確保抗鋸齒處於打開狀態。然而,儘管有一個用於XML的android:antialias密鑰(你可以在本節中看到它 - 但它不起作用),但我無法弄清楚如何使用它。

有沒有人有任何建議?

感謝, R.

+0

在我能回答之前,您刪除了該問題...您可以取消刪除它嗎?至少讓我發表一個答案,向你展示佈局中的錯誤。具有交換視圖的那個。 –

+0

你說的那個:「倒立的物品是ViewSpaceA和ViewSpaceB」......或者你自己找到答案了嗎? –

+0

今天我要結束了。如果您想回答這個問題,請回復我(如果您最終取消刪除,也會通知我)。這是問題的地址,以防萬一:http://stackoverflow.com/questions/29394409/android-layout-behavior –

回答

0

我能找到的唯一答案是從1DP到2DP增長的白色輪廓的大小。 我認爲這樣做的原因是曲線顏色混疊,但是我沒有直接解決這個問題。起初,這並不是我想要的樣子,但是它長在了我的身上。

0

這是可能的,這可能僅僅是畫面質量。或者,它可能會在邊界和中心之間出現鋸齒。

該代碼可以繞過別名:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape> 
      <gradient 
       android:endColor="#444444" 
       android:startColor="#444444" /> 

      <corners android:radius="8dip" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <solid android:color="#00000000"/> 

      <stroke 
       android:antialias="true" 
       android:width="1dip" 
       android:color="@android:color/white" /> 

      <corners android:radius="8dip" /> 
     </shape> 
    </item> 
</layer-list> 
+0

我會給它一個鏡頭,並讓你知道... – Rich

+0

不幸的是,它看起來像你的第一句話可能是正確的 - 它可能只是屏幕。你給我的文件產生的結果與我原來的結果完全一樣,但無論如何感謝你的努力。 – Rich

0

您可以創建一個9修補程序drawable,它不會有這種消除鋸齒的外觀。

相關問題