2013-10-06 2 views
5

Я пытаюсь создать пользовательскую панель поиска для своего приложения для Android. Я нашел много решений, но все они используют «пользовательский» код рисования для фона. Моя панель поиска проста - у меня есть изображение (только одно) для фона и изображение для большого пальца. Проблема, которую я имею, - масштабирование: я хочу, чтобы изображение «большого пальца» и «фона» масштабировалось в соответствии с размером элемента управления поисковой системой. Как это сделать? Немного забавно, что при использовании изображений (рисунков) в качестве фона/большого пальца Android по умолчанию не будет масштабировать их, но оставляет их в исходном размере :)Стиль искателя Android

+0

Вот почему вы используете 9.png для создания пользовательских поисковых систем. – barto90

+0

Любой пример? Могу ли я использовать только одно изображение для девяти патчей? – guest86

ответ

7

Вы можете сделать передний план, фон и ползунок большого пальца ,

Вот хороший учебник:

Tutorial

Это тоже хорошо:

Tutorial 2

А вот как вы делаете заказ 9.png изображения:

nine-patch

+1

Первая ссылка мертва. Это хороший пример того, почему ответ должен быть не просто набором ссылок, но фактически содержать ответ –

2

1 Вы можете использовать xml (progress.xml), чтобы определить внешний вид ProgressBar & поместите его в каталог res.

2 Большой палец может быть определен внутри макета, где объявлен ProgressBar.

3 Палец может быть изображение (imgthumb.png) еще я заметил 2 лучшие практики

  1. Оптимальная высота большой палец 2,5 разавысота из ProgressBar.
  2. Это лучше оказывается, когда высоты & ширина палец изображения точно так же, как диаметра пальца (т.е. для кругового пальца) &, наконец, места различных размеров из thumb в каждый ковш для различных пикселей Плотность.

Вот источники

1 progress.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

<item android:id="@android:id/background"> 
    <shape android:shape="rectangle" > 
     <corners android:radius="5dp" /> 

     <gradient 
      android:angle="270" 
      android:endColor="#cccccc" 
      android:startColor="#d3d3d3" /> 
    </shape> 
</item> 
<item android:id="@android:id/secondaryProgress"> 
    <clip> 
     <shape android:shape="rectangle" > 
      <corners android:radius="0dp" /> 

      <gradient 
       android:angle="270" 
       android:endColor="#ff0000" 
       android:startColor="#ff0000" /> 
     </shape> 
    </clip> 
</item> 
<item android:id="@android:id/progress"> 
    <clip> 
     <shape android:shape="rectangle" > 
      <corners android:radius="5dp" /> 

      <gradient 
       android:angle="270" 
       android:endColor="#1dc0ff" 
       android:startColor="#1dc0ff" /> 
     </shape> 
    </clip> 
</item> 

2 Определения SeekBar в макете с помощью пользовательского пальца

<SeekBar 
     android:id="@+id/song_seekbar" 
     android:layout_width="0dp" 
     android:layout_weight=".84" 

     android:minHeight="8dip" 
     android:maxHeight="8dip" 

     android:layout_height="wrap_content" 

     android:layout_centerVertical="true" 
     android:layout_centerInParent="true" 

     android:progressDrawable="@drawable/progressbar" 
     android:thumb="@drawable/imgthumb" /> 

Надеется, что это помогает вы!

Смежные вопросы