2016-09-20 91 views
0

我想使按鈕具有不同顏色的環形狀。我做到了,它正在設備上進行調試。 代碼black_round_button.xml位於繪製-V21形狀項目不適用於某些設備上的按鈕

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="ring"> 
<solid android:color="@color/black" /> 

按鈕的代碼是

<Button 
    android:id="@+id/button31" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:background="@drawable/black_round_button" 
    android:onClick="countClick" 
    android:text="@string/zero" /> 

而上件,其中,我調試(安卓5.0.2),它看起來不錯: black ring shape

但是!!!當我在其他設備(Android 4.4.4,Android 5.1,其他)上開始調試時,我發現任何形狀環都不起作用。它看起來像: no black ring shape

所以,我不知道爲什麼會發生這種情況。昨天我在5個不同的設備上測試它(其中3個是虛擬的,2個是真實的),只有在我的設備上它按照我的預期工作。

回答

0

這是因爲您將xml文件放置在drawable-v21文件夾中。這僅適用於API> = 21!你還應該有一個「drawable」文件夾(沒有「-v21」擴展名),嘗試在其中添加xml文件。如果文件夾不存在,只需在「drawable-v21」文件夾的相同級別創建它即可。

+0

aha,是的,當我問這個問題時,我也開始考慮這個問題。問題在我的Android工作室中,我把它們放在drawable文件夾中,但在github上,它們在drawable-v21中。好的,謝謝你的建議,今天將嘗試這個解決方案。 –

+0

好的,祝你好運!消息我,如果它是成功的:) – jdstaerk

+0

你不會相信我,但它並沒有幫助=(我把我所有的xml形狀從drawable-v21移動到了可繪製的,沒有任何東西。 看起來我需要使用gradle和build bersions –

0

所以問題不僅適用於Android 4.4(API 19),對於Android 6(API23)等舊版本來說問題也是可重現的,所以問題在於我的環形沒有必要的屬性。據我所知,從API22開始,您需要添加

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:innerRadius="17dp" 
android:shape="ring" 
android:thickness="5dp" 
android:useLevel="false"> 

這將修復API22-API24問題。

我不確定是否需要將xml文件從drawable-v21文件夾移動到可繪製的位置(因爲看起來像環形形狀在版本低於API21時不起作用,您需要在這種情況下使用「橢圓形」 ,但我不確定)

相關問題