2016-04-18 2 views
1

Ich arbeite an einer Android-Anwendung, wo ich das Bild einer Batterie (PNG) ändern/aktualisieren muss basierend auf einem Wert aktualisiert werden (nicht eine funktionale App aber machen nur einen Überblick über das Design)So aktualisieren Sie ein Bild, basierend auf einer Zahl oder einem Wert in Android Studio

enter image description here

Wie ich das Bild machen könnte dann aktualisiert, wenn der Wert

value 25 - image1.png value 50 - image2.png value 75 - image3.png and so on

+0

wie Erscheint eine einfache Switch-Anweisung sollte es tun – Eenvincible

Antwort

-2

Sie in so etwas wie diese verwenden können geändert wird:

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; 
    } 
+0

Warum sind Dekodierst du die Bitmap? Verwenden Sie setImageResource (R.drawable.img_0) – cyroxis

0

Sie können setImageResource() -Methode verwenden:

myImgView.setImageResource(R.drawable.image1); 

oder mit setImageDrawable() -Methode:

myImgView.setImageDrawable(getResources().getDrawable(R.drawable.image1)); 
1

einfach eine Kaskadierung machen if-else-Zustand auf der Bildressource Sie wollen benutzen.

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); 
+0

LevelListDrawable hat bereits diese Logik eingebaut. – cyroxis

+0

@cyroxis Ah, wusste nicht über diese. Vielen Dank! –

0

sollten Sie eine LevelListDrawable in XML verwenden

<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> 

Dann können Sie den Pegel auf der Image einstellen direkt

someView.setImageResource(R.drawable.battery_level); // Or set in XML 
someView.setImageLevel(47); // Or whatever the current battery level is 
Verwandte Themen