2012-05-18 6 views
2

Я хочу нарисовать пользовательский панельный вид с поднятой рамкой (терминология Swing). Существуют ли для этого определенные предопределенные методы? Например, можно ли взять границы с текущего стиля кнопки? Или я обязан создать свой собственный патч или что-то еще?Есть ли по умолчанию граничные фоны?

+0

я думаю, что вы создаете свой собственный девять патч изображение –

+0

Если все, что вы хотите это коническая граница , вы можете сделать это с помощью фигурных чертежей, но я не пробовал это сам. –

ответ

3

Грубый подход к этому состоял бы в том, чтобы сделать XML-чертеж со списком слоев внутри и самостоятельно составить структуру кнопки. В моем примере вы получаете следующий стиль кнопки.

enter image description here

И все цвета могут быть изменены, если это необходимо в соответствии с вашим стилем. Я знаю, что углы должны быть под углом 45º вместо 90º, но нет простого способа показать это здесь без какого-либо тестирования. Исходный XML является следующее:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!-- The gray part of the border --> 
    <item> 
     <shape> 
      <solid android:color="#fccc"></solid> 
     </shape> 
    </item> 
    <!-- The black part of the border --> 
    <item android:right="2dip" 
      android:bottom="2dp"> 
     <shape> 
      <solid android:color="#f000"></solid> 
     </shape> 
    </item> 
    <!-- The content --> 
    <item android:left="2dip" 
      android:top="2dp" 
      android:right="2dip" 
      android:bottom="2dp"> 
     <shape> 
      <solid android:color="#ffafafaf"></solid> 
     </shape> 
    </item> 
</layer-list> 

В качестве дополнительного примера того, что вы можете достичь здесь, просто добавив <corners android:radius="4dp"></corners> к границе формы, мы можем получить немного меньше глаз-больное стиль:

enter image description here

Или вы можете пойти на другой подход и избегать повышенной границы скоса, что упростит его на стороне XML и, вероятно, лучше. Для достижения такого рода кнопки:

enter image description here

XML-это так же просто, как:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <corners android:radius="4dp"></corners> 
    <solid android:color="#fccc"></solid> 
    <stroke android:width="2dp" android:color="#ff6f6f6f"></stroke> 
</shape> 
Смежные вопросы