2016-10-14 3 views
0

Я пытаюсь сделать игру как «нажмите & убить», и я пытаюсь создать бар здоровья для персонажа, которого нужно убить. Я использую простой образ (красный прямоугольник), и я хотел бы уменьшить панель здоровья после одного нажатия. То, что я пробовал, работает, но проблема заключается не только в уменьшении, но и в высоте. Таким образом, результат действительно ужасен. Для начала, это мой XML (я только показать один для примера):Как изменить размер изображения не пропорционально?

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="33"> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#FFFF00" 
     android:id="@+id/hole4"/> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/healthBar4" 
     android:src="@drawable/health_bar"/> 
</RelativeLayout> 

Так вот ничего плохого (я думаю) я оставляю android:adjustViewBounds="true", потому что я думал, что проблема возникла здесь. Следующая моя активность:

final int healthBarHeightInitial = healthBar4.getLayoutParams().height; 
final int healthBarWidthInitial = healthBar4.getLayoutParams().width; 
healthBar4.requestLayout(); 

//ivHole4 is my ImageView I get the click to leave some life to the character 
ivHole4.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     //If character die (works great). 
     if(choixAction.ChoixAction(CharaHole4,outil)){ 
      Log.d("Perso","Character is die"); 
      mAvancement +=1; 
      ivHole4.setImageResource(0); 
      CharaHole4 = null; 
      placeChara.setHole4(true); 
      healthBar4.setVisibility(View.GONE); 
      healthBar4.getLayoutParams().height = healthBarHeightInitial; 
      healthBar4.getLayoutParams().width = healthWidthInitial; 
     } 
     //if character don't die (here is the problem !) 
     else { 
      healthBar4.getLayoutParams().width = healthBar4.getWidth()/2; //This is works great 
      healthBar4.getLayoutParams().height = healthBarHeightInitial; //This is do nothing, the height is /2 too. 
      healthBar4.requestLayout(); 
     } 

    } 
}); 

Я надеюсь, что кто-то знает, как изменить размер изображения не пропорционально. Спасибо заранее.

+0

Вы пытались добавить это в свой ImageView? : 'android: scaleType =" fitXY "' – Knossos

+0

Это работает !! =) Спасибо, много! Опубликуйте новое сообщение, если хотите, я отвечу на ваш ответ. – LeNomade

ответ

0

Ваш ImageView в XML-макете должен установить тип шкалы fitXY, чтобы он мог расширяться, не сохраняя пропорций.

android:scaleType="fitXY" 
+0

Спасибо. Он работает хорошо =) – LeNomade

0

Использование библиотеки Пикассо и установка центра растени.

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