2013-04-27 2 views
2

Я пытаюсь использовать Imageview для наложения растрового изображения на макет.
Из того, что я вижу.ImageView src vs background

  • , если я использую точечный рисунок (который представляет собой 9-патч), как android:src он не получает натянут, чтобы покрыть макет
  • , если я использую его как android:background он получает натяжные

Моей дилеммы заключается в том, что я хочу использовать кучу 9-патчей в ресурсе level-list и выбрать правильный, используя setImageLevel().

  • setImageLevel работает только для android:src и не android:background

Как получить 9-патч также натянута, но также можно выбрать из уровня-лист?

+0

Попробуйте использовать android: scaleType = "fitXY" в ImageView. –

+0

@SagarWaghmare Я просто попробовал свои советы. Он масштабирует растровое изображение, но не так, как 9-патч должен растягиваться, он масштабирует его. – ilomambo

+0

Нет ничего, что помешало бы вам использовать ваш «уровень-лист» в качестве фона ImageView, а затем, когда вам нужно изменить уровень: 'LevelListDrawable background = (LevelListDrawable) findViewById (R.id.image) .getBackground() ; background.setLevel (1); ' – Luksprog

ответ

2

Вы можете использовать level-list вытяжке. Это вытяжка будет фоном для ImageView, чтобы установить уровень до требуемого значения (и сделать правильную вытяжку быть выбрана) вы будете использовать:

LevelListDrawable background = (LevelListDrawable) findViewById(R.id.image).getBackground(); 
background.setLevel(1); 
1

Пока не появится лучший ответ. Позвольте мне поделиться, как я это делаю сейчас.
В коде, вместо использования:

myView.setImageLevel(level); 

Я просто установить фон там

switch(level) { 
case 0: 
    myView.setBackgroundResource(R.drawable.bg0); 
    break;  
case 1: 
    myView.setBackgroundResource(R.drawable.bg1); 
    break; 
    . . . 
} 
0

В ImageView в XML, попробуйте добавить атрибут:

android:scaleType="fitXY" 

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

  • Нет связанных вопросов^_^