ошибка в Android 2.1 XML Drawables?

1

Посмотрев на следующее изображение, на левой панели находится андроид 2.1, справа - 2.2:

alt text http://www.freeimagehosting.net/uploads/286374c727.jpg

Как вы можете видеть, углы на левом изображении не применяются правильно, но они выглядят идеально в 2.2. Xml, который я использую здесь:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="0dip" android:left="0dip" android:bottom="0dip"
    android:top="0dip">
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <corners android:bottomRightRadius="3dip"
            android:bottomLeftRadius="3dip" android:topLeftRadius="3dip"
            android:topRightRadius="3dip" />
        <stroke android:width="1dip" android:color="#70532B" />
        <padding android:left="1dip" android:top="1dip"
            android:right="1dip" android:bottom="1dip" />
    </shape>
</item>
<item android:right="0dip" android:left="0dip" android:bottom="0dip"
    android:top="9dip">
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <gradient android:startColor="#ECAF08" android:endColor="#F6E34B"
            android:angle="270" />
        <corners android:bottomRightRadius="3dip"
            android:bottomLeftRadius="3dip" android:topLeftRadius="0dip"
            android:topRightRadius="0dip" />

    </shape>



</item>
<item android:right="0dip" android:left="0dip" android:bottom="11dip"
    android:top="0dip">
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <gradient android:startColor="#FCEF94" android:endColor="#FFBA00"
            android:angle="270" />
        <corners android:bottomRightRadius="0dip"
            android:bottomLeftRadius="0dip" android:topLeftRadius="3dip"
            android:topRightRadius="3dip" />
    </shape>
</item>

Я делаю что-то не так, или это ошибка в android 2.1???

Теги:
drawable

1 ответ

2

Умный способ сделать кнопку градиента.

Интересно, связано ли это с <corners> xml ошибкой в ​​Android 2.1 и ниже. bottomLeftRadius фактически соответствует bottomRightRadius, и наоборот. Возможно, они исправили его в 2.2, таким образом, он выглядит правильно в 2.2, но вы накладываетесь неожиданными способами в 2.1 и ниже. В этом случае вы можете использовать папки с таргетингом на версии, чтобы использовать для каждой версии разные варианты (ака, /drawable-v7/ и /drawable-v8/).

  • 0
    поэтому проблема в том, что у вас не может быть прямоугольника с верхним углом, а нижний без угла. Я видел проблему раньше. в последний раз, когда я столкнулся с этим, я нашел обходной путь, в основном наложив прямоугольник на верхнюю часть углового прямоугольника, тем самым обнажив нижнюю часть как загнутую и оставив верхнюю как плоскую. это было хакерски, но это работало.
  • 1
    Еще одна вещь, которая немного раздражает, это то, что вы не можете использовать относительные размеры? то есть в моем примере выше, вы, вероятно, заметили, что у меня было 11 и 9 падения соответственно. Конечно, было бы неплохо использовать 51% и 49% или что-то в этом роде ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню