ImageView src vs background

时间:2013-04-27 11:54:23

标签: android background android-imageview nine-patch

我尝试使用Imageview在布局上叠加位图 从我所看到的。

  • 如果我使用位图(这是一个9补丁)作为android:src,它不会拉伸以覆盖布局
  • 如果我将其用作android:background,则会进行拉伸

我的困境是我想在level-list资源中使用一堆9补丁,并使用setImageLevel()选择正确的补丁。

  • setImageLevel仅适用于android:src,不适用于android:background

如何获得9-patch也可以拉伸,但也可以从关卡列表中选择?

3 个答案:

答案 0 :(得分:2)

您可以使用level-list drawable。可绘制的将是ImageView的背景,将级别设置为所需的值(并选择适当的drawable),您将使用:

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

答案 1 :(得分:1)

直到出现更好的答案。让我分享一下我现在是怎么做的。
在代码中,而不是使用:

myView.setImageLevel(level);

我只是在那里设置背景

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

答案 2 :(得分:0)

在xml的imageview中,尝试添加属性:

android:scaleType="fitXY"