[英]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.