2010-11-10 130 views
2

在我的項目中,有許多圖像具有後退和前進圖像,並且所有圖像具有相同的佈局。在回退和下一個按鈕時,應顯示新圖像。動態設置圖像路徑

private int imageCounter = 0; 
private ImageView imageView; 
private int[] imageArray = {R.drawable.image_w_lbl_0, R.drawable.image_w_lbl_1,}; 
private int index_count = 0; 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    setContentView(R.layout.frame0);//this one is the common parent layout for all imageviews 
    super.onCreate(savedInstanceState); 
    imageView = new ImageView(this); 

    ImageButton next = (ImageButton) findViewById(R.id.next); 
    ImageButton back = (ImageButton) findViewById(R.id.back); 
    next.setOnClickListener(this); 
    back.setOnClickListener(this); 

    //show the default image 
    this.loadImage(imageArray[0]); 

} 
@Override 
public void onClick(View v) 
{ 

    int imagePath = 0; 
    // TODO Auto-generated method stub 
    switch (v.getId()) 
    { 
    case R.id.next: 
     if(imageCounter < 25) 
     { 

      imagePath = imageArray[index_count]; 
     } 
     imageCounter++; 
     break; 
    case R.id.back: 
     if(imageCounter > 0) 
     { 
      //imagePath = 
     } 
     imageCounter--; 

     break; 

    } 

    this.loadImage(imagePath); 

} 

private void loadImage(int imagePath) 
{ 
    imageView.setImageResource(imagePath); 
} 

我能看到我的佈局,只有在有回輸出,並與黑色的背景是從我繪製folder.Layout任何圖像前進按鈕:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:gravity="center" 
> 
<ImageButton android:id="@+id/back" android:src="@drawable/btn_back" 

的android:layout_width =「WRAP_CONTENT」 機器人:layout_height = 「WRAP_CONTENT」 機器人:layout_gravity = 「左」 />

<ImageButton 

機器人:ID =「@ + I d /下一個」 機器人:SRC = 「@繪製/ btn_next」 機器人:layout_width = 「WRAP_CONTENT」 機器人:layout_height = 「WRAP_CONTENT」 機器人:layout_gravity = 「右」 />

</LinearLayout> 
+1

你想在你的Android應用程序或在您的構建環境得到這個信息。請提供更多細節。 – Robert 2010-11-10 11:13:56

+0

在我的android應用程序 – Alok 2010-11-10 12:01:02

回答

3

int數組:

Integer[] imageArray = { "R.drawable.img1", "R.drawable.img2" }

...

imageView.setImageResource(imageArray[0]); // displays img1

1

不非常清楚你在問什麼,但你想要做這樣的事情:

imagePath = R.drawable.image_wo_lbl_0;

如果你真的想要這樣做,你可以用這種方式存儲圖像路徑。從資源圖像(即RES /繪製-MDPI)的

+0

如何使此dynamin取決於計數值意味着爲計數= 0獲得特定圖像的路徑;爲計數= 1獲取另一個圖像的路徑......等等,只要將imagePath作爲arguemnt方法loadimage並在imageview.that中顯示該圖像! – Alok 2010-11-10 13:42:24

+0

嗨viv!謝謝我已經做了上述編輯的代碼運行良好,但無法從我的可繪製文件夾中加載圖像是有一些imageView.setImageResource(imagePath);;有一點我也很疑惑是,我的圖像視圖會重疊到我的下一個和後退按鈕?看到我的xml請不要圖像按鈕!!我已採取上述佈局作爲父容器的所有圖像加載 – Alok 2010-11-11 07:43:17

+0

「我的圖像視圖重疊到我的下一個和後退按鈕」,以及我不能判斷它,對不起爲它,爲imageview嘗試使用imageView.setBackgroundResource(imageArray [0])........希望它可以幫助 – viv 2010-11-11 07:53:39

1
imageView.setImageResource(R.drawable.img1) 
-1

使用ContextCompat得到的繪製(圖片你案件)。這是將圖像設置到圖像視圖的新方法之一。

imageView.setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), 
                R.drawable.your_image)); 

您也可以使用ContextCompat來獲得顏色。 我在我的應用程序中使用它,它可以正常工作。

0

最簡單的方法 - 可以考慮下面的代碼

我們可以採取的ImageView setImageResource的優勢,參考下列代碼相同。在類似於下面的順序

image_1.png,image_2.png提拉 放圖像等

int imagePosition = 1;      

int resId = getResources().getIdentifier("image_" + imagePosition, "drawable", getPackageName()); 
      imageview.setImageResource(resId);