2012-02-29 28 views
0

首先,我對此非常感興趣,並且自學自學,因此我不會要求您爲我編寫代碼。只要給我一些條款,主題或學習的主題,我就會把這些書打理出來。Android替代setVisibility在屏幕上顯示圖像

我正在製作一個應用程序,用戶通過按下按鈕或選擇圖像來設置屏幕上顯示的內容。我知道如何做到這一點的唯一方法是讓onClickListener設置一個變量並使用switch語句顯示與所選變量相對應的imageView。

例如:

//on click listeners set variable userPic1 and userPic2 

    switch(userPic1){ 
    case 1: 
     pic11.setVisibility(View.VISIBLE); 
     pic12.setVisibility(View.GONE); 
     pic13.setVisibility(View.GONE); 
     pic14.setVisibility(View.GONE); 
     break; 
    case 2: 
     pic11.setVisibility(View.GONE); 
     pic12.setVisibility(View.VISIBLE); 
     pic13.setVisibility(View.GONE); 
     pic14.setVisibility(View.GONE); 
     break; 
    case 3: 
     pic11.setVisibility(View.GONE); 
     pic12.setVisibility(View.GONE); 
     pic13.setVisibility(View.VISIBLE); 
     pic14.setVisibility(View.GONE); 
     break; 
    case 4: 
     pic11.setVisibility(View.GONE); 
     pic12.setVisibility(View.GONE); 
     pic13.setVisibility(View.GONE); 
     pic14.setVisibility(View.VISIBLE); 
     break; 
    } 


    switch(userPic2){ 
    case 1: 
     pic21.setVisibility(View.VISIBLE); 
     pic22.setVisibility(View.GONE); 
     pic23.setVisibility(View.GONE); 
     pic24.setVisibility(View.GONE); 
     break; 
    case 2: 
     pic21.setVisibility(View.GONE); 
     pic22.setVisibility(View.VISIBLE); 
     pic23.setVisibility(View.GONE); 
     pic24.setVisibility(View.GONE); 
     break; 
    case 3: 
     pic21.setVisibility(View.GONE); 
     pic22.setVisibility(View.GONE); 
     pic23.setVisibility(View.VISIBLE); 
     pic24.setVisibility(View.GONE); 
     break; 
    case 4: 
     pic21.setVisibility(View.GONE); 
     pic22.setVisibility(View.GONE); 
     pic23.setVisibility(View.GONE); 
     pic24.setVisibility(View.VISIBLE); 
     break; 
    }  
} 

我覺得有可能是一個更好的實現代碼,但更大的問題是在我的XML佈局我有所有這些imageViews彼此堆疊及獲得的頂部很難看出他們將如何看待,因爲它只是一團糟。

任何幫助表示讚賞

+0

感謝您的幫助,我一直在測試了viewFlipper和使用數組,並認爲雙方將努力通過了我的應用程序好了很多,然後我的原代碼。 – vanamp 2012-03-04 19:10:12

回答

0

按照建議使用ViewFlipper可能會有所幫助,如果您嘗試在許多視圖之間切換。然而,如果你真的只是改變圖像,而不需要改變佈局而不是創建很多視圖,我只需簡單地將圖像設置在你的ImageView(我假設picXX是ImageViews)。你可以將你的ID存儲在一個或兩個數組中,並從那裏獲取它們。喜歡的東西:

int[] userPics1 = new int[] {R.drawable.pic1, R.drawable.pic2, ... } 

然後:

ImageView pic = (ImageView)findViewById(R.id.pic); 
pic.setImageResource(userPics1[userPic1]);