Pascal P.
Hallo coreytaylor211,
ich habe deinen Threadtitel mal angepasst, bitte achte in Zukunft auf einen Aussagekräftigen Titel
Danke
Prinzipiell ja:
Vorgehen:
Für jedes Bild einen Akkustandsbereich festlegen ( bsp fürs erste bild 100% bis 85% etc..)
Dann Akkustand auslesen und auswerten und je nach Wert das passende Bild/Imageview anzeigen.
Aber:
Normalerweise zeichtet man das auf einer View/Canvas selber, anstatt vorefertigte Bilder zu benutzen...
Lieben Dank für die Anpassung und die Antwort.
Ja genau so habe ich das gemacht aber alles was ich versucht habe geht ab 5.1 nicht mehr.
Hier mal ein Beispiel vielleicht weißt du ja was ?
public class NewAppWidget extends AppWidgetProvider {
private final int BATTERY_STEPS = 10;
private RemoteViews widgetViews =
new RemoteViews("layout",
R.layout.new_app_widget);
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
ComponentName meinWidget = new ComponentName(context,NewAppWidget.class);
for (int widgetId : appWidgetManager.getAppWidgetIds(meinWidget)){
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.new_app_widget);
remoteViews.setImageViewResource(R.id.imageView,0);
remoteViews.setImageViewResource(R.id.imageView2,0);
remoteViews.setImageViewResource(R.id.imageView3,0);
remoteViews.setImageViewResource(R.id.imageView4,0);
remoteViews.setImageViewResource(R.id.imageView5,0);
remoteViews.setImageViewResource(R.id.imageView6,0);
remoteViews.setImageViewResource(R.id.imageView7,0);
remoteViews.setImageViewResource(R.id.imageView8,0);
remoteViews.setImageViewResource(R.id.imageView9,0);
remoteViews.setImageViewResource(R.id.imageView10,0);
appWidgetManager.updateAppWidget(widgetId,remoteViews);
}
Intent received = context.getApplicationContext().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
assert received != null;
String receivedAction = received.getAction();
if (receivedAction.equals(Intent.ACTION_BATTERY_CHANGED)){
int level = received.getIntExtra("level",0);
this.widgetViews.setImageViewResource(R.id.imageView,0);
this.widgetViews.setImageViewResource(R.id.imageView2,0);
this.widgetViews.setImageViewResource(R.id.imageView3,0);
this.widgetViews.setImageViewResource(R.id.imageView4,0);
this.widgetViews.setImageViewResource(R.id.imageView5,0);
this.widgetViews.setImageViewResource(R.id.imageView6,0);
this.widgetViews.setImageViewResource(R.id.imageView7,0);
this.widgetViews.setImageViewResource(R.id.imageView8,0);
this.widgetViews.setImageViewResource(R.id.imageView9,0);
this.widgetViews.setImageViewResource(R.id.imageView10,0);
showBars(level);
ComponentName appComp = new ComponentName(context, NewAppWidget.class);
AppWidgetManager.getInstance(context).updateAppWidget(appComp,widgetViews);
}
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
PowerManager powerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakel = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG");
wakel.acquire();
ComponentName thisWidget = new ComponentName(context, NewAppWidget.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.new_app_widget);
remoteViews.setImageViewResource(R.id.imageView,0);
remoteViews.setImageViewResource(R.id.imageView2,0);
remoteViews.setImageViewResource(R.id.imageView3,0);
remoteViews.setImageViewResource(R.id.imageView4,0);
remoteViews.setImageViewResource(R.id.imageView5,0);
remoteViews.setImageViewResource(R.id.imageView6,0);
remoteViews.setImageViewResource(R.id.imageView7,0);
remoteViews.setImageViewResource(R.id.imageView8,0);
remoteViews.setImageViewResource(R.id.imageView9,0);
remoteViews.setImageViewResource(R.id.imageView10,0);
manager.updateAppWidget(thisWidget, remoteViews);
wakel.release();
}
@Override
public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) {
super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions);
this.widgetViews.setImageViewResource(R.id.imageView,0);
this.widgetViews.setImageViewResource(R.id.imageView2,0);
this.widgetViews.setImageViewResource(R.id.imageView3,0);
this.widgetViews.setImageViewResource(R.id.imageView4,0);
this.widgetViews.setImageViewResource(R.id.imageView5,0);
this.widgetViews.setImageViewResource(R.id.imageView6,0);
this.widgetViews.setImageViewResource(R.id.imageView7,0);
this.widgetViews.setImageViewResource(R.id.imageView8,0);
this.widgetViews.setImageViewResource(R.id.imageView9,0);
this.widgetViews.setImageViewResource(R.id.imageView10,0);
showBars(appWidgetId);
}
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, NewAppWidget.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,0,intent,0);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, 60000, pendingIntent);
}
}
private void setPartStep(int partLevel)
{
if(partLevel>BATTERY_STEPS) return;
else
{
switch(partLevel)
{
case 1:
this.widgetViews.setImageViewResource(R.id.imageView,0);
this.widgetViews.setViewVisibility(R.id.imageView,
View.VISIBLE);
break;
case 2:
this.widgetViews.setImageViewResource(R.id.imageView2,0);
this.widgetViews.setViewVisibility(R.id.imageView2,
View.VISIBLE);
break;
case 3:
this.widgetViews.setImageViewResource(R.id.imageView3,0);
this.widgetViews.setViewVisibility(R.id.imageView3,
View.VISIBLE);
break;
case 4:
this.widgetViews.setImageViewResource(R.id.imageView4,0);
this.widgetViews.setViewVisibility(R.id.imageView4,
View.VISIBLE);
break;
case 5:
this.widgetViews.setImageViewResource(R.id.imageView5,0);
this.widgetViews.setViewVisibility(R.id.imageView5,
View.VISIBLE);
break;
case 6:
this.widgetViews.setImageViewResource(R.id.imageView6,0);
this.widgetViews.setViewVisibility(R.id.imageView6,
View.VISIBLE);
break;
case 7:
this.widgetViews.setImageViewResource(R.id.imageView7,0);
this.widgetViews.setViewVisibility(R.id.imageView7,
View.VISIBLE);
break;
case 8:
this.widgetViews.setImageViewResource(R.id.imageView8,0);
this.widgetViews.setViewVisibility(R.id.imageView8,
View.VISIBLE);
break;
case 9:
this.widgetViews.setImageViewResource(R.id.imageView9,0);
this.widgetViews.setViewVisibility(R.id.imageView9,
View.VISIBLE);
break;
case 10:
this.widgetViews.setImageViewResource(R.id.imageView10,0);
this.widgetViews.setViewVisibility(R.id.imageView10,
View.VISIBLE);
break;
default:
break;
}
}
}
private void showBars(int currLevel)
{
if(currLevel>=10)
{
this.widgetViews.setImageViewResource(R.id.imageView,0);
this.widgetViews.setViewVisibility(R.id.imageView, View.VISIBLE);
}
else
this.widgetViews.setViewVisibility(R.id.imageView, View.INVISIBLE);
if(currLevel>=20)
{
this.widgetViews.setImageViewResource(R.id.imageView2,0);
this.widgetViews.setViewVisibility(R.id.imageView2, View.VISIBLE);
}
else
this.widgetViews.setViewVisibility(R.id.imageView2, View.INVISIBLE);
if(currLevel>=30)
{
this.widgetViews.setImageViewResource(R.id.imageView3,0);
this.widgetViews.setViewVisibility(R.id.imageView3, View.VISIBLE);
}
else
this.widgetViews.setViewVisibility(R.id.imageView3, View.INVISIBLE);
if(currLevel>=40)
{
this.widgetViews.setImageViewResource(R.id.imageView4,0);
this.widgetViews.setViewVisibility(R.id.imageView4, View.VISIBLE);
}
else
this.widgetViews.setViewVisibility(R.id.imageView4, View.INVISIBLE);
if(currLevel>=50)
{
this.widgetViews.setImageViewResource(R.id.imageView5,0);
this.widgetViews.setViewVisibility(R.id.imageView5, View.VISIBLE);
}
else
this.widgetViews.setViewVisibility(R.id.imageView5, View.INVISIBLE);
if(currLevel>=60)
{
this.widgetViews.setImageViewResource(R.id.imageView6,0);
this.widgetViews.setViewVisibility(R.id.imageView6, View.VISIBLE);
}
else
this.widgetViews.setViewVisibility(R.id.imageView6, View.INVISIBLE);
if(currLevel>=70)
{
this.widgetViews.setImageViewResource(R.id.imageView7,0);
this.widgetViews.setViewVisibility(R.id.imageView7, View.VISIBLE);
}
else
this.widgetViews.setViewVisibility(R.id.imageView7, View.INVISIBLE);
if(currLevel>=80)
{
this.widgetViews.setImageViewResource(R.id.imageView8,0);
this.widgetViews.setViewVisibility(R.id.imageView8, View.VISIBLE);
}
else
this.widgetViews.setViewVisibility(R.id.imageView8, View.INVISIBLE);
if(currLevel>=90)
{
this.widgetViews.setImageViewResource(R.id.imageView9,0);
this.widgetViews.setViewVisibility(R.id.imageView9, View.VISIBLE);
}
else
this.widgetViews.setViewVisibility(R.id.imageView9, View.INVISIBLE);
if(currLevel>=100)
{
this.widgetViews.setImageViewResource(R.id.imageView10,0);
this.widgetViews.setViewVisibility(R.id.imageView10, View.VISIBLE);
}
else
this.widgetViews.setViewVisibility(R.id.imageView10, View.INVISIBLE);
int partLevel = currLevel%BATTERY_STEPS;
int fullSteps = currLevel-partLevel;
if(partLevel>0) setPartStep((fullSteps/BATTERY_STEPS)+1);
}
}
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.