2013-04-27 122 views
2

我試圖用Imageview覆蓋佈局上的位圖。
從我能看到的。ImageView src與背景

  • 如果我使用位圖(這是一個9補丁)爲android:src它不會streched覆蓋佈局
  • 如果我用它作爲android:background它得到streched

我進退兩難是我想在level-list資源中使用一堆9個補丁,並使用setImageLevel()選擇正確的補丁。

  • setImageLevel僅適用於android:src而不是android:background

如何獲得9補丁也streched而且從級別列表選擇?

+0

嘗試在ImageView中使用android:scaleType =「fitXY」。 – 2013-04-27 12:08:09

+0

@SagarWaghmare我剛剛試過你的建議。它確實擴展了位圖,但不是因爲9貼片應該拉伸,而是將其縮放。 – ilomambo 2013-04-27 12:12:09

+0

沒有什麼能阻止你使用'level-list'作爲ImageView的背景,然後當你需要改變等級時:'LevelListDrawable background =(LevelListDrawable)findViewById(R.id.image).getBackground() ; background.setLevel(1);' – Luksprog 2013-04-29 07:00:15

回答

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

在XML的ImageView的,嘗試添加屬性:

android:scaleType="fitXY"