簡體   English   中英

通過java在android中的imageView上更改圖像

[英]Changing image on imageView in android via java

我有一個imageView,一個活動內的按鈕,從stage1到stage9命名的10張圖片。

我需要你幫忙解決一些問題

我想使用按鈕單擊將imageView上的圖片更改為下一張。

我的意思是,我想按按鈕,圖像視圖顯示stage2圖像,再次按按鈕,將顯示stage3圖片。

我使用計數器var來完成此操作,該計數器對點擊次數進行計數,然后運行語句以查看接下來應顯示的圖片,但是它太長了,不可能有更多或更少的圖片。

我想知道有沒有辦法做到這一點,請告訴我如何做。

謝謝

private void changeImage(int counter) {
    if (counter == 1) {
        image.setImageResource(R.drawable.stage2);
    } else if (counter == 2) {
        image.setImageResource(R.drawable.stage3);
    } else if (counter == 3) {
        image.setImageResource(R.drawable.stage4);
    } else if (counter == 4) {
        image.setImageResource(R.drawable.stage5);
    } else if (counter == 5) {
        image.setImageResource(R.drawable.stage6);
    } else if (counter == 6) {
        image.setImageResource(R.drawable.stage7);
    } else if (counter == 7) {
        image.setImageResource(R.drawable.stage8);
    } else if (counter == 8) {
        image.setImageResource(R.drawable.stage9);
    }       
}

糟糕的是,這是我現在正在使用的代碼。

它有效,但是如果我想使其更具動態性。

只需按名稱獲取資源ID,就可以這樣使用,

private void changeImage(int counter) {

     if(counter >= 1 && counter <= 9) // Always check counter value before accessing as resource id
     {
      int counterValue = counter+1;  
      int resourceId = Resources.getSystem().getIdentifier("stage"+counterValue, "drawable",  this.getPackageName()); // Use application context to get package name
      image.setImageResource(resourceId);
     }
} 

您需要告訴虛擬機進行更新->'invalide()'。

或使用畢加索

Picasso.with(Statics.context).load(R.drawable.stageX).error(R.drawable.error_img).resize(width, height).priority(Priority.HIGH).into(image);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM