如何在Android studio中基于数字或值更新图像

如何在Android studio中基于数字或值更新图像,android,Android,我正在开发一个android应用程序,我需要根据一个值(不是一个功能性应用程序,只是对设计做一个概述)来更改/更新电池的图像(png) 当值更改时,如何更新图像 value 25-image1.png 值50-image2.png 值75-image3.png等您可以在以下内容中使用: switch (num) { case 0: imageview.setImageResource(R.drawable.img_0);

我正在开发一个android应用程序,我需要根据一个值(不是一个功能性应用程序,只是对设计做一个概述)来更改/更新电池的图像(png)

当值更改时,如何更新图像

value 25-image1.png
值50-image2.png

值75-image3.png等

您可以在以下内容中使用:

    switch (num) {
        case 0:
            imageview.setImageResource(R.drawable.img_0);
            break;
        case 1:
            imageview.setImageResource(R.drawable.img_1);
            break;
        case 2:
            imageview.setImageResource(R.drawable.img_2);
            break;
        case 3:
            imageview.setImageResource(R.drawable.img_3);
            break;
    }

您可以使用setImageResource()方法:

或使用setImageDrawable()方法:


只需对要使用的图像资源设置一个级联if-else条件

ImageView batteryImg = (ImageView) findViewById(R.id.img_battery);
int imgRes = 0;
int battery = getBatteryLevel(); // TODO: Implement

if (battery >= 100) {
    imgRes = R.drawable.battery_full;
} else if (battery >= 75) {
    imgRes = R.drawable.battery_three_quarters;
} else if (battery >= 50) {
   imgRes = R.drawable.battery_half;
} 
// and so on...
else {
    imgRes = R.drawable.battery_low;
}
batteryImg.setImageResource(imgRes);
您应该在XML中使用


看起来像是一个简单的switch语句,应该执行以下操作:为什么要解码位图?使用setImageResource(R.drawable.img_0)@cyroxis-Ah,不知道这些。谢谢!
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.image1));
ImageView batteryImg = (ImageView) findViewById(R.id.img_battery);
int imgRes = 0;
int battery = getBatteryLevel(); // TODO: Implement

if (battery >= 100) {
    imgRes = R.drawable.battery_full;
} else if (battery >= 75) {
    imgRes = R.drawable.battery_three_quarters;
} else if (battery >= 50) {
   imgRes = R.drawable.battery_half;
} 
// and so on...
else {
    imgRes = R.drawable.battery_low;
}
batteryImg.setImageResource(imgRes);
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:maxLevel="25" android:drawable="@drawable/battery_low" />
  <item android:maxLevel="50" android:drawable="@drawable/battery_medium" />
  <item android:maxLevel="75" android:drawable="@drawable/battery_high" />
  <item android:maxLevel="100" android:drawable="@drawable/battery_full" />
</level-list>
someView.setImageResource(R.drawable.battery_level); // Or set in XML
someView.setImageLevel(47); // Or whatever the current battery level is