2

什麼是下面兩種情況之間的利弊:我們應該在Android的LayoutView還是ImageView中設置背景?

  1. 使用LayoutView(如RelativeLayout的/ LinearLayout中),並與可繪製對象

  2. 調用的setBackground(繪製)使用ImageView的(寬度:FILL_PARENT,高度:FILL_PARENT)內的LayoutView的和調用以下:

    • imageView.setBackground(繪製)
    • imageView.setBackgroundResource(資源)
    • imageView.setImageBitmap(位圖)
    • imageView.setImageResource(stub_id)

是方法2更好的性能?如果是這樣,這將是爲ImageView設置背景的推薦方式?

回答

1

如果我只想爲我的佈局設計一個簡單的背景,我會堅持使用第一種方法。請注意,您必須遠遠不止這些方法你是指爲應用背景在LayoutView,如更多:現在

myLayout.setBackgroundColor(int color); 
myLayout.setBackgroundDrawable(Drawable d); 
myLayout.setBackgroundResource(int resid); 

,選購方法#1的原因:

  • Android將只充氣一個查看,而不是兩個,就像它將不得不在方法#2
  • Android會自動調整您的圖像/繪圖/位圖的尺寸爲LayoutView大小。在方法#2中,該任務將必須由您自己執行,使用ImageViewXML屬性。
  • 在方法#2中,您將不得不擔心管理您的LayoutView(相對位置,大小,順序)的ImageView和其他可能的子女Views,因爲它們會以某種方式相關。在方法#1中,您的LayoutView背景永遠不會與子女Views混淆。
  • 在代碼易讀性方面,看到RelativeLayout與子女ImageView,其唯一功能是定義背景沒有意義,除非它是一個非常特殊的情況。您具有android:background屬性。在這種情況下,更少的代碼可以使代碼更好。
  • 在代碼中,在方法#2中,您必須聲明兩個視圖,因此需要更多的內存才能在這些視圖上應用這些方法。在方法#1中,您可以在3行代碼中執行所需的操作。

似乎有足夠的理由使用方法#1。

對於問題的第二部分,使用Drawable設置背景的最佳方式取決於該Drawable的來源(來自資源,生成的Drawable對象等)以及您想要對該Drawable執行的操作(通過它位圖並進行一些更改等)。

您可以檢查每種方法的文檔以更好地理解您何時應該使用它們中的每一種。

相關問題