2013-07-09 90 views
0

我想創建一個從可繪製文件夾讀取圖像的Horizo​​ntalScrollView。圖像的名稱是「image1」,「image2」...「image20」。我不知道如何使用這些數字來閱讀它們。這裏是我有:將圖像添加到Horizo​​ntalScrollView

protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    LinearLayout sv = (LinearLayout) findViewById (R.id.images); 
    for (int i=1 ; i<20; i++){ 
     ImageView iv = new ImageView (this); 
     iv.setBackgroundResource (R.drawable.image1); 
     sv.addView(iv); 
    } 
} 

回答

3

您可以通過兩種方式來實現。

第一個是創建陣列圖像的ID的要使用,並在您for週期,只是將圖像添加到您的佈局:

int[] images = new int[]{R.drawable.image1, R.drawable.image2, ... R.drawable.image20}; 
LinearLayout sv = (LinearLayout) findViewById (R.id.images); 
for (int i=0 ; i<20; i++){ 
    ImageView iv = new ImageView (this); 
    iv.setBackgroundResource (images[i]); 
    sv.addView(iv); 
} 

還是第二種方式,您可以創建類似的東西對此:

for (int i=1 ; i<=20; i++){ 
    String uri = "drawable/image"+i; 
    // int imageResource = R.drawable.image1; 
    int imageResource = getResources().getIdentifier(uri, null, getPackageName()); 

    ImageView iv = new ImageView (this); 
    iv.setBackgroundResource (imageResource); 
    sv.addView(iv); 
} 

我沒有測試代碼,但我認爲他們應該工作。

+0

非常感謝您的幫助,這非常有用 – Fernandez6

+0

很高興我幫助了! :) – hardartcore

0

很多像這樣的例子顯示建立你的圖像列表第一。然後你可以使用你的代碼並遍歷列表。

因此,像

List<Drawable> imagesToAdd = Arrays.asList(R.drawable.image1,R.drawable.image2, .... R.drawable.image20); 

那麼你甚至可以使用foreach循環通過這個迭代。

for (Drawable image in imageToAdd) { 
    etc... 
} 
+0

這實際上是不正確的,你想實例那裏有一個可繪製元素的列表,但實際上是添加了可繪製的資源ID。 – anthonymonori

1

如果您想使用drawables沒有一個數組列表,你可以這樣做:

getResources().getIdentifier("Name of the Drawable", "drawable", "Your Package Name"); 

所以,你的代碼將是:

protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 
    LinearLayout sv = (LinearLayout) findViewById (R.id.images); 

    for (int i=1 ; i<20; i++){ 
     ImageView iv = new ImageView (this); 
     int myImage = getResources().getIdentifier("image"+i, "drawable", "Your Package Name"); 
     iv.setBackgroundResource(myImage); 
     sv.addView(iv); 
    } 

} 
相關問題